List Enrollments

Lists transaction enrollment records with optional filtering and pagination.

GET/enrollments

This endpoint retrieves a list of all transaction enrollments 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 parametersEndpoint returns
?providerNames=John%20Doe&providerNames=Jane%20DoeEnrollments associated with either John Doe or Jane Doe.
?status=LIVEEnrollments 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.
Authorization
RequiredHeader

A Stedi API Key for authentication.

Query Parameters

pageSize
NumberRange: ≥ 1 and ≤ 500

The maximum number of elements to return in a page. If not specified, the default is 100.

pageToken
StringLength: 1 - 1024

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.

filter
String

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 - 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.

status
Array of Strings

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.

Possible values
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
providerNpis
Array of Strings

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.

providerTaxIds
Array of Strings

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.

providerNames
Array of Strings

Filter for enrollments associated with specific provider names. 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.

This search is case-sensitive and doesn't support fuzzy matching. The name you provide must match the provider's name exactly, including spaces and capitalization.

payerIds
Array of Strings

Filter for enrollments associated with specific Stedi payer IDs. 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.

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.

sources
Array of Strings

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.

Possible values
API
UI
IMPORT
AUTO_ENROLLMENT
transactions
Array of Strings

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.

Possible values
claimStatus
eligibilityCheck
institutionalClaimSubmission
professionalClaimSubmission
dentalClaimSubmission
createdFrom
StringFormat: date-time

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.

createdTo
StringFormat: date-time

Filter for enrollments created before a specific date.

For example, if you set this to 2025-01-01T00:00:00Z, Stedi only returns enrollments with a createdAt timestamp before this date.

The time must be later than createdFrom, if present.

statusUpdatedFrom
StringFormat: date-time

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.

statusUpdatedTo
StringFormat: date-time

Filter for enrollments whose status was last updated before a specific date.

For example, if you set this to 2025-01-01T00:00:00Z, Stedi only returns enrollments with a statusLastUpdatedAt before this date.

The time must be later than statusUpdatedFrom, if present.

importId
String

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.

Response

application/json

ListEnrollments 200 response

nextPageToken
StringLength: 1 - 1024

Token for pagination to retrieve the next page of results; null if there are no more results

items
Array of Objects

Details about the enrollments matching the search criteria.

Array item
id
items[].id
StringRequired

The Stedi-assigned identifier for the enrollment.

provider
items[].provider
ObjectRequired

Information about the provider enrolling with the payer.

Show attributes
name
items[].provider.name
StringRequired

The provider's name, such as Example Dental Associates, LLC.

npi
items[].provider.npi
StringRequired

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.

taxId
items[].provider.taxId
StringRequired

The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes.

taxIdType
items[].provider.taxIdType
StringRequired

The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN).

id
items[].provider.id
StringRequired

The Stedi-assigned identifier for the provider. The Create Provider endpoint returns this as the id property.

payer
items[].payer
ObjectRequired

Information about the payer the provider is enrolling with.

Show attributes
name
items[].payer.name
String

The payer's name, such as Cigna or UnitedHealthcare.

stediPayerId
items[].payer.stediPayerId
StringRequired

The unique Stedi assigned identifier for the payer.

transactions
items[].transactions
ObjectRequired

The type of transactions included in the enrollment.

eligibilityCheck
items[].transactions.eligibilityCheck
ObjectRequired

Whether 270 eligibility checks are included in the enrollment.

Show attributes
enroll
items[].transactions.eligibilityCheck.enroll
BooleanRequired
claimStatus
items[].transactions.claimStatus
ObjectRequired

Whether 276 claim status requests are included in the enrollment.

Show attributes
enroll
items[].transactions.claimStatus.enroll
BooleanRequired
professionalClaimSubmission
items[].transactions.professionalClaimSubmission
ObjectRequired

Whether 837P professional claims are included in the enrollment.

Show attributes
enroll
items[].transactions.professionalClaimSubmission.enroll
BooleanRequired
institutionalClaimSubmission
items[].transactions.institutionalClaimSubmission
ObjectRequired

Whether 837I institutional claims are included in the enrollment.

Show attributes
enroll
items[].transactions.institutionalClaimSubmission.enroll
BooleanRequired
dentalClaimSubmission
items[].transactions.dentalClaimSubmission
ObjectRequired

Whether 837D dental claims are included in the enrollment.

Show attributes
enroll
items[].transactions.dentalClaimSubmission.enroll
BooleanRequired
claimPayment
items[].transactions.claimPayment
ObjectRequired

Whether 835 Electronic Remittance Advice (ERAs) are included in the enrollment.

Show attributes
enroll
items[].transactions.claimPayment.enroll
BooleanRequired
solicitedClaimAttachment
items[].transactions.solicitedClaimAttachment
ObjectRequired

Whether solicited claim attachments are included in the enrollment.

Show attributes
enroll
items[].transactions.solicitedClaimAttachment.enroll
BooleanRequired
unsolicitedClaimAttachment
items[].transactions.unsolicitedClaimAttachment
ObjectRequired

Whether unsolicited claim attachments are included in the enrollment.

Show attributes
enroll
items[].transactions.unsolicitedClaimAttachment.enroll
BooleanRequired
status
items[].status
StringRequired

The status of the enrollment.

  • 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.
  • SUBMITTED - (Deprecated) Legacy status being phased out in favor of the more specific action-required statuses.
  • 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.
Possible values
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
source
items[].source
StringRequired

The source of the enrollment.

Possible values
API
UI
IMPORT
AUTO_ENROLLMENT
createdAt
items[].createdAt
StringRequiredFormat: date-time

The date and time when the enrollment was created within Stedi.

updatedAt
items[].updatedAt
StringRequiredFormat: date-time

The date and time when the enrollment was updated.

submittedAt
items[].submittedAt
StringFormat: date-time

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.

statusLastUpdatedAt
items[].statusLastUpdatedAt
StringRequiredFormat: date-time

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.

history
items[].history
Array of Objects

The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future.

Array item
previousStatus
items[].history[].previousStatus
String

The status before this change occurred. This will be UNDEFINED for the enrollment's initial status after creation.

Possible values
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
newStatus
items[].history[].newStatus
StringRequired

The status after this change occurred.

Possible values
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
changedBy
items[].history[].changedBy
StringRequired

The source or system that triggered this change.

changedAt
items[].history[].changedAt
StringRequiredFormat: date-time

The date and time when this change occurred.

type
items[].history[].type
StringRequired

The type of change that occurred.

Possible values
STATUS_CHANGE
documents
items[].documents
Array of 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.

Array item
id
items[].documents[].id
StringRequired

The unique identifier for the document.

enrollmentId
items[].documents[].enrollmentId
StringRequired

The enrollment ID this document is associated with.

name
items[].documents[].name
StringRequired

The name of the document.

contentType
items[].documents[].contentType
String

The content type of the document.

size
items[].documents[].size
Number

The size of the document in bytes.

status
items[].documents[].status
StringRequired

Indicates whether the document file has been successfully uploaded to Stedi.

Possible values
PENDING
UPLOADED
FAILED
DELETED
taskId
items[].documents[].taskId
String

The task ID associated with this document, if it was created or processed as part of a task.

createdAt
items[].documents[].createdAt
StringRequiredFormat: date-time

The date and time when the document was created.

updatedAt
items[].documents[].updatedAt
StringRequiredFormat: date-time

The date and time when the document was last updated.

tasks
items[].tasks
Array of Objects

Tasks associated with this enrollment, such as reminders or follow-ups.

Array item
isComplete
items[].tasks[].isComplete
BooleanRequired

Whether the task has been completed.

completedAt
items[].tasks[].completedAt
NumberFormat: double

The timestamp when the task was completed.

completedBy
items[].tasks[].completedBy
String

Identifier of who completed the task.

responsibleParty
items[].tasks[].responsibleParty
StringRequired

The party responsible for completing this task.

Possible values
PROVIDER
STEDI
definition
items[].tasks[].definition
ObjectRequired

The specific definition and data for this task.

followInstructions
items[].tasks[].definition.followInstructions
ObjectRequired

A task that requires the responsible party to follow specific instructions.

Show attributes
instructions
items[].tasks[].definition.followInstructions.instructions
StringRequiredMin length: 1

Human-readable instructions for the responsible party to follow.

provideLegalContactDetails
items[].tasks[].definition.provideLegalContactDetails
ObjectRequired

A task that requires the provider to provide legal entity contact details.

Show attributes
instructions
items[].tasks[].definition.provideLegalContactDetails.instructions
StringRequiredMin length: 1

Instructions explaining what legal contact details are needed.

provideFilledPdf
items[].tasks[].definition.provideFilledPdf
ObjectRequired

A task that requires downloading, filling, and re-uploading a PDF document.

Show attributes
instructions
items[].tasks[].definition.provideFilledPdf.instructions
StringRequiredMin length: 1

Instructions explaining what needs to be filled in the PDF.

signWithAdobe
items[].tasks[].definition.signWithAdobe
ObjectRequired

A task that requires signing a document using Adobe Sign.

Show attributes
instructions
items[].tasks[].definition.signWithAdobe.instructions
StringRequiredMin length: 1

Instructions explaining what document needs to be signed.

signerEmail
items[].tasks[].definition.signWithAdobe.signerEmail
StringRequiredRegex pattern: ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$Min length: 5

Email address of the person who needs to sign.

rank
items[].tasks[].rank
NumberRequiredRange: ≥ 0

The rank order of this task. Lower numbers are completed first.

responseData
items[].tasks[].responseData
Object

Response data collected when the task was completed. Only present for completed tasks that require structured data (e.g., ProvideLegalContactDetails, ProvideFilledPdf, SignWithAdobe).

legalContactDetails
items[].tasks[].responseData.legalContactDetails
ObjectRequired

Legal entity contact details collected from a ProvideLegalContactDetails task.

    **When to use:** Required when completing a task where `task.definition.provideLegalContactDetails` is present.

    **Example:**
    ```typescript
    responseData: {
      legalContactDetails: {
        legalEntityName: 'XYZ Medical Group, Inc.',
        businessAddress: {
          street1: '123 Main St',
          city: 'Boston',
          state: 'MA',
          zipCode: '02101'
        },
        contactName: 'Jane Smith',
        contactEmail: 'jane@example.com',
        contactPhone: '6175551234'
      }
    }
    ```
Show attributes
legalEntityName
items[].tasks[].responseData.legalContactDetails.legalEntityName
StringRequiredMin length: 1

Legal name of the entity (e.g., XYZ Medical Group, Inc.).

businessAddress
items[].tasks[].responseData.legalContactDetails.businessAddress
ObjectRequired

Business address of the legal entity.

Show attributes
street1
items[].tasks[].responseData.legalContactDetails.businessAddress.street1
StringRequiredMin length: 5

Street address line 1.

street2
items[].tasks[].responseData.legalContactDetails.businessAddress.street2
String

Street address line 2 (optional).

city
items[].tasks[].responseData.legalContactDetails.businessAddress.city
StringRequiredMin length: 2

City name.

state
items[].tasks[].responseData.legalContactDetails.businessAddress.state
StringRequired

State or province code using standard two-letter abbreviation.

Possible values
AA
AE
AK
AL
AP
zipCode
items[].tasks[].responseData.legalContactDetails.businessAddress.zipCode
StringRequiredMin length: 5

ZIP or postal code.

contactName
items[].tasks[].responseData.legalContactDetails.contactName
StringRequiredMin length: 1

Contact person's full name.

contactEmail
items[].tasks[].responseData.legalContactDetails.contactEmail
StringRequiredRegex pattern: ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$Min length: 5

Contact email address in standard email format.

contactPhone
items[].tasks[].responseData.legalContactDetails.contactPhone
StringRequiredRegex pattern: ^(?:[\s().-]*\d){10}[\s().-]*$

Contact phone number.

additionalInfo
items[].tasks[].responseData.legalContactDetails.additionalInfo
String

Additional information or notes (optional).

pdfUpload
items[].tasks[].responseData.pdfUpload
ObjectRequired

Uploaded PDF data collected from a ProvideFilledPdf task.

    **When to use:** Required when completing a task where `task.definition.provideFilledPdf` is present. First upload the PDF using CreateEnrollmentDocumentUpload, then provide the returned documentId here.

    **Example:**
    ```typescript
    // Step 1: Upload document
    const upload = await client.send(new CreateEnrollmentDocumentUploadCommand({
      enrollmentId: 'xxx',
      name: 'form.pdf',
      taskId: 'yyy'
    }));

    // Step 2: Upload file to presigned URL
    await fetch(upload.uploadUrl, { method: 'PUT', body: pdfBuffer });

    // Step 3: Complete task with document reference
    responseData: {
      pdfUpload: {
        documentId: upload.documentId,
        fileName: 'completed-form.pdf'
      }
    }
    ```
Show attributes
documentId
items[].tasks[].responseData.pdfUpload.documentId
StringRequiredMin length: 1

Document ID of the uploaded PDF in the enrollment document system (e.g., 019375d0-1234-7890-abcd-567890abcdef).

fileName
items[].tasks[].responseData.pdfUpload.fileName
StringRequiredMin length: 1

Original filename of the uploaded PDF (e.g., completed-enrollment-form.pdf).

adobeSign
items[].tasks[].responseData.adobeSign
ObjectRequired

Adobe Sign agreement data collected from a SignWithAdobe task.

    **When to use:** Required when completing a task where `task.definition.signWithAdobe` is present.

    **Example:**
    ```typescript
    responseData: {
      adobeSign: {
        agreementId: 'CBJCHBCAABAA-abc123',
        signedDocumentUrl: 'https://secure.echosign.com/signed/abc123',
        signedAt: new Date('2024-01-15T10:30:00Z')
      }
    }
    ```
Show attributes
agreementId
items[].tasks[].responseData.adobeSign.agreementId
StringRequiredMin length: 1

Adobe Sign agreement ID.

signedDocumentUrl
items[].tasks[].responseData.adobeSign.signedDocumentUrl
StringRequiredMin length: 1

URL to download the signed document.

signedAt
items[].tasks[].responseData.adobeSign.signedAt
StringRequiredFormat: date-time

Timestamp when the document was signed.

followInstructions
items[].tasks[].responseData.followInstructions
ObjectRequired

Response data collected from a FollowInstructions task.

    **When to use:** Optional when completing a task where `task.definition.followInstructions` is present. Can include any relevant notes or confirmation text from the responsible party.

    **Example:**
    ```typescript
    responseData: {
      followInstructions: {
        response: 'Instructions followed and task completed successfully.'
      }
    }
    ```
Show attributes
response
items[].tasks[].responseData.followInstructions.response
StringRequiredMin length: 1

Response provided when completing a FollowInstructions task. This can be any relevant notes or confirmation text from the responsible party.

id
items[].tasks[].id
StringRequired

The unique identifier for the task.

importId
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.

The total count of enrollments matching the filter criteria, regardless of pagination.