components: schemas: AccessDeniedExceptionResponseContent: description: The server response for authorization failure. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object AggregationPreference: description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. Only set this property for 835 ERA enrollments.\n\ \ - If you include this property for a non-ERA enrollment, Stedi rejects\ \ the enrollment request with an HTTP `400` error.\n - If the payer doesn't\ \ support the requested aggregation type, Stedi rejects the enrollment request\ \ with an HTTP `400` error.\n - If not set, Stedi automatically selects a\ \ default based on the payer's supported aggregation types and the available\ \ identifiers for the provider.\n - Stedi will attempt to enroll with this\ \ preference, but it's not guaranteed. Each payer has its own restrictions\ \ and behaviors." oneOf: - properties: taxId: description: The Taxpayer Identification Number (TIN) the payer should use for aggregation. pattern: ^\d{9}$ type: string required: - taxId title: taxId type: object - properties: npi: description: The National Provider Identifier (NPI) the payer should use for aggregation. pattern: ^[0-9]{10}$ type: string required: - npi title: npi type: object AllEnrolledProviderFields: description: Complete provider information including both read-only and mutable fields. properties: id: description: 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. type: string name: description: The provider's name, such as `Example Dental Associates, LLC`. type: string npi: description: 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. type: string taxId: description: The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes. type: string taxIdType: description: The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN). type: string required: - id - name - npi - taxId - taxIdType type: object CreateEnrollmentDocumentDownloadResponseContent: description: Response containing the document ID and pre-signed URL for download. properties: documentId: description: The document ID for the PDF document associated with the `downloadUrl`. type: string downloadUrl: description: The pre-signed URL to download the document. type: string required: - documentId - downloadUrl type: object CreateEnrollmentDocumentUploadRequestContent: description: Input for CreateDocumentUpload. properties: name: description: 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. type: string taskId: description: The ID for the task associated with this document upload. type: string required: - name - taskId type: object CreateEnrollmentDocumentUploadResponseContent: description: Response containing the enrollment ID, document ID, and pre-signed URL. properties: documentId: description: A unique identifier for the document record within Stedi. type: string enrollmentId: description: The enrollment ID for the transaction enrollment request associated with the PDF document. type: string uploadUrl: description: The pre-signed URL you can use to upload the PDF document. This URL expires after 24 hours. type: string required: - documentId - enrollmentId - uploadUrl type: object CreateEnrollmentRequestContent: description: Input for CreateEnrollment. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. Only set this property for 835 ERA enrollments.\n\ \ - If you include this property for a non-ERA enrollment, Stedi rejects\ \ the enrollment request with an HTTP `400` error.\n - If the payer doesn't\ \ support the requested aggregation type, Stedi rejects the enrollment\ \ request with an HTTP `400` error.\n - If not set, Stedi automatically\ \ selects a default based on the payer's supported aggregation types and\ \ the available identifiers for the provider.\n - Stedi will attempt\ \ to enroll with this preference, but it's not guaranteed. Each payer\ \ has its own restrictions and behaviors." payer: $ref: '#/components/schemas/EnrolledPayerInput' description: Information about the payer the provider is enrolling with. primaryContact: $ref: '#/components/schemas/ProviderContact' description: "The contact information for the provider. This is where the\ \ payer will send communications about the enrollment, if needed.\n -\ \ Either `organizationName` _or_ `firstName` and `lastName` are required.\n\ \ - 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.\n - If you're submitting enrollment\ \ requests on a provider's behalf, 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 status instead of the provider directly.\n\ \ - This contact information doesn't need to match existing contacts\ \ defined on the provider record. It also doesn't modify or replace contacts\ \ on the provider record." provider: $ref: '#/components/schemas/EnrolledProviderInput' description: Information about the provider enrolling with the payer. You **must** use the [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint to add the provider to Stedi before you can enroll them with one or more payers. providerTransactionAccessNumber: description: '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.' maxLength: 10 minLength: 4 pattern: ^[a-zA-Z0-9]+$ type: string reason: deprecated: true description: '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.' type: string requestedEffectiveDate: description: "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.\n\nStedi processes enrollments accordingly,\ \ but can't guarantee that the enrollment will be effective on this exact\ \ date.\n - You can submit today's date or a future date up to 6 months\ \ from today.\n - If not set for draft enrollments, this property remains\ \ empty.\n - If not set for submitted enrollments, Stedi defaults to\ \ the enrollment's submission date.\n - If you include this property\ \ for a payer that doesn't support requested effective dates, Stedi rejects\ \ the request with an HTTP `400` error." maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' deprecated: true description: 'This shape is deprecated since 2025-12-23: Stedi ignores this property for API requests, and it will be removed in a future release. The enrollment source is always set to `API`.' status: $ref: '#/components/schemas/InitialEnrollmentStatus' description: "The status of the enrollment. You can submit enrollments with\ \ 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 `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status.\n\ \ - `DRAFT` - You're still editing the enrollment and haven't submitted\ \ it to Stedi.\n - `STEDI_ACTION_REQUIRED` - You have submitted the enrollment\ \ and it is ready for Stedi to begin processing.\n - `SUBMITTED` - (Deprecated)\ \ Legacy status being phased out in favor of the more specific action-required\ \ statuses. If you set an enrollment request to `SUBMITTED`, Stedi treats\ \ it as `STEDI_ACTION_REQUIRED`." transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. userEmail: description: "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.\n - This email address can\ \ be different from the `primaryContact.email` where the payer sends communications\ \ about the enrollment.\n - 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." minLength: 5 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])?)*$ type: string required: - payer - primaryContact - provider - transactions - userEmail type: object CreateEnrollmentResponseContent: description: Output containing the created enrollment details. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. This property is only returned for 835 ERA\ \ enrollments.\n - If not set, Stedi automatically selects a default\ \ based on the payer's supported aggregation types and the available identifiers\ \ for the provider.\n - Stedi attempts to enroll with this preference,\ \ but it's not guaranteed. Each payer has its own restrictions and behaviors.\n\ \ - This property isn't returned for enrollment records created before\ \ Stedi added support for aggregation preferences." createdAt: description: The date and time when the enrollment was created within Stedi. format: date-time type: string documents: description: Documents associated with this enrollment, excluding deleted documents. items: $ref: '#/components/schemas/EnrollmentDocument' type: array history: description: The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. items: $ref: '#/components/schemas/EnrollmentHistoryEntry' type: array id: description: The Stedi-assigned identifier for the enrollment request. type: string lastEraReceivedAt: description: "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.\n - This property is only returned\ \ for ERA enrollments in `LIVE` status with at least one matching ERA\ \ from the payer.\n - If this timestamp doesn't match your expected timeline\ \ for ERA processing, there may be an upstream issue. Contact Stedi support\ \ for assistance." format: date-time type: string payer: $ref: '#/components/schemas/EnrolledPayerOutput' description: Information about the payer the provider is enrolling with. primaryContact: $ref: '#/components/schemas/ProviderContact' description: The contact information for the provider. This is where the payer will send communications about the enrollment, if needed. provider: $ref: '#/components/schemas/AllEnrolledProviderFields' description: Information about the provider enrolling with the payer. providerTransactionAccessNumber: description: '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.' maxLength: 10 minLength: 4 pattern: ^[a-zA-Z0-9]+$ type: string reason: description: 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. type: string requestedEffectiveDate: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' description: The source of this enrollment. status: $ref: '#/components/schemas/EnrollmentStatus' description: "The status of the enrollment. You can submit enrollments with\ \ 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 `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status.\n\ \ - `DRAFT` - You're still editing the enrollment and haven't submitted\ \ it to Stedi.\n - `STEDI_ACTION_REQUIRED` - You have submitted the enrollment\ \ and it is ready for Stedi to begin processing.\n - `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.\n - `SUBMITTED` -\ \ (Deprecated) Legacy status being phased out in favor of the more specific\ \ action-required statuses. If you set an enrollment request to `SUBMITTED`,\ \ Stedi treats it as `STEDI_ACTION_REQUIRED`.\n - `PROVISIONING` - Stedi\ \ has begun the process of completing the enrollment with the payer.\n\ \ - `LIVE` - The enrollment process is complete, and the specified provider\ \ can begin exchanging the listed transaction types with the payer.\n\ \ - `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.\n - `CANCELED` - The enrollment\ \ has been terminated per customer or provider request." statusLastUpdatedAt: description: 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. format: date-time type: string submittedAt: description: 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. format: date-time type: string tasks: description: Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. items: $ref: '#/components/schemas/Task' type: array transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. updatedAt: description: The date and time when the enrollment was updated. format: date-time type: string userEmail: description: "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.\n - This email address can\ \ be different from the `primaryContact.email` where the payer sends communications\ \ about the enrollment.\n - 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." minLength: 5 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])?)*$ type: string required: - createdAt - id - payer - primaryContact - provider - statusLastUpdatedAt - transactions - updatedAt - userEmail type: object CreateProviderRequestContent: description: Information about the provider you want to add to your account. The provider **must** have a unique NPI from other providers in your account. properties: contacts: description: "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.\n\nThese contacts should specify where\ \ payers should send communications about the enrollment, if needed.\n\ \ - Either `organizationName` _or_ `firstName` and `lastName` are required.\n\ \ - 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.\n - 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.\n\ \ - These contacts are for convenience only. You can specify different\ \ contacts on enrollment requests as needed." items: $ref: '#/components/schemas/ProviderContact' type: array name: description: 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. minLength: 5 type: string npi: description: '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`.' pattern: ^[0-9]{10}$ type: string taxId: description: '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`.' pattern: ^\d{9}$ type: string taxIdType: $ref: '#/components/schemas/TaxIdType' description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN` - Social Security Number. required: - name - npi - taxId - taxIdType type: object CreateProviderResponseContent: description: Output containing the created provider details. properties: contacts: description: '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.' items: $ref: '#/components/schemas/ProviderContact' type: array createdAt: description: The date and time Stedi created the provider record. format: date-time type: string id: description: A unique identifier Stedi assigns to this provider. type: string name: description: 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. minLength: 5 type: string npi: description: '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`.' pattern: ^[0-9]{10}$ type: string taxId: description: '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`.' pattern: ^\d{9}$ type: string taxIdType: $ref: '#/components/schemas/TaxIdType' description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN` - Social Security Number. updatedAt: description: The date and time Stedi last updated the provider record. format: date-time type: string required: - id - name - npi type: object DocumentStatus: description: Indicates whether the document file has been successfully uploaded to Stedi. enum: - PENDING - UPLOADED - FAILED - DELETED type: string EnrolledPayerInput: description: The payer you want to enroll with. properties: id: deprecated: true description: Use `idOrAlias` instead. This property will be removed in the future. type: string idOrAlias: description: "The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network)\ \ for a complete list.\n - You can use the primary payer ID, the Stedi\ \ payer ID, or any listed aliases for the payer.\n - 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`." type: string type: object EnrolledPayerOutput: description: Output structure containing payer information in enrollment responses. properties: name: description: The payer's name, such as `Cigna` or `UnitedHealthcare`. type: string stediPayerId: description: The unique Stedi assigned identifier for the payer. type: string submittedPayerIdOrAlias: description: 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). type: string required: - stediPayerId type: object EnrolledProviderInput: description: The provider you want to enroll with the payer. This must be an existing provider record within Stedi. properties: id: description: 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. type: string required: - id type: object EnrolledTransaction: description: Represents the enrollment status for a specific transaction type. properties: enroll: type: boolean required: - enroll type: object EnrolledTransactionsList: description: Specifies which transaction types are included in the enrollment. oneOf: - properties: eligibilityCheck: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 270 eligibility checks are included in the enrollment. required: - eligibilityCheck title: eligibilityCheck type: object - properties: claimStatus: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 276 claim status requests are included in the enrollment. required: - claimStatus title: claimStatus type: object - properties: professionalClaimSubmission: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 837P professional claims are included in the enrollment. required: - professionalClaimSubmission title: professionalClaimSubmission type: object - properties: institutionalClaimSubmission: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 837I institutional claims are included in the enrollment. required: - institutionalClaimSubmission title: institutionalClaimSubmission type: object - properties: dentalClaimSubmission: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 837D dental claims are included in the enrollment. required: - dentalClaimSubmission title: dentalClaimSubmission type: object - properties: claimPayment: $ref: '#/components/schemas/EnrolledTransaction' description: Whether 835 Electronic Remittance Advice (ERAs) are included in the enrollment. required: - claimPayment title: claimPayment type: object - properties: solicitedClaimAttachment: $ref: '#/components/schemas/EnrolledTransaction' description: Whether solicited claim attachments are included in the enrollment. required: - solicitedClaimAttachment title: solicitedClaimAttachment type: object - properties: unsolicitedClaimAttachment: $ref: '#/components/schemas/EnrolledTransaction' description: Whether unsolicited claim attachments are included in the enrollment. required: - unsolicitedClaimAttachment title: unsolicitedClaimAttachment type: object EnrollmentDocument: description: A collection of metadata about an enrollment document, including its name, status, last updated date, and the associated enrollment Id. properties: contentType: description: The content type of the document. type: string createdAt: description: The date and time when the document was created. format: date-time type: string enrollmentId: description: The enrollment ID this document is associated with. type: string id: description: The unique identifier for the document. type: string name: description: The name of the document. type: string size: description: The size of the document in bytes. type: number status: $ref: '#/components/schemas/DocumentStatus' description: Indicates whether the document file has been successfully uploaded to Stedi. taskId: description: The task ID associated with this document, if it was created or processed as part of a task. type: string updatedAt: description: The date and time when the document was last updated. format: date-time type: string required: - createdAt - enrollmentId - id - name - status - updatedAt type: object EnrollmentHistoryChangeType: description: The type of change recorded in the enrollment history. enum: - STATUS_CHANGE type: string EnrollmentHistoryEntry: description: An update to an enrollment, such as a change in the enrollment's status. This object is experimental and may change in the future. properties: changedAt: description: The date and time when this change occurred. format: date-time type: string changedBy: description: The source or system that triggered this change. type: string newStatus: $ref: '#/components/schemas/EnrollmentStatus' description: The status after this change occurred. previousStatus: $ref: '#/components/schemas/EnrollmentStatus' description: The status before this change occurred. This will be `UNDEFINED` for the enrollment's initial status after creation. type: $ref: '#/components/schemas/EnrollmentHistoryChangeType' description: The type of change that occurred. required: - changedAt - changedBy - newStatus - type type: object EnrollmentSource: description: The source of the enrollment. enum: - API - UI - IMPORT - AUTO_ENROLLMENT - AUTOMATED_TASK type: string EnrollmentStatus: description: 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. enum: - DRAFT - SUBMITTED - PROVISIONING - LIVE - REJECTED - CANCELED - STEDI_ACTION_REQUIRED - PROVIDER_ACTION_REQUIRED type: string EnrollmentSummary: description: Summary of an enrollment with essential fields for list operations. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. This property is only returned for 835 ERA\ \ enrollments.\n - If not set, Stedi automatically selects a default\ \ based on the payer's supported aggregation types and the available identifiers\ \ for the provider.\n - Stedi attempts to enroll with this preference,\ \ but it's not guaranteed. Each payer has its own restrictions and behaviors\n\ \ - This property isn't returned for enrollment records created before\ \ Stedi added support for aggregation preferences." createdAt: description: The date and time when the enrollment was created within Stedi. format: date-time type: string documents: description: '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: $ref: '#/components/schemas/EnrollmentDocument' type: array history: description: The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. items: $ref: '#/components/schemas/EnrollmentHistoryEntry' type: array id: description: The Stedi-assigned identifier for the enrollment. type: string importId: description: 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. type: string lastEraReceivedAt: description: "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.\n - This property is only returned\ \ for ERA enrollments in `LIVE` status with at least one matching ERA\ \ from the payer.\n - If this timestamp doesn't match your expected timeline\ \ for ERA processing, there may be an upstream issue. Contact Stedi support\ \ for assistance." format: date-time type: string payer: $ref: '#/components/schemas/EnrolledPayerOutput' description: Information about the payer the provider is enrolling with. provider: $ref: '#/components/schemas/AllEnrolledProviderFields' description: Information about the provider enrolling with the payer. reason: description: 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. type: string requestedEffectiveDate: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' description: The source of the enrollment. status: $ref: '#/components/schemas/EnrollmentStatus' description: "The status of the enrollment.\n - `DRAFT` - You are still\ \ editing the record and it has not been submitted to Stedi.\n - `STEDI_ACTION_REQUIRED`\ \ - You have submitted the enrollment and it is ready for Stedi to begin\ \ processing.\n - `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.\n - `SUBMITTED` - (Deprecated) Legacy status being\ \ phased out in favor of the more specific action-required statuses.\n\ \ - `PROVISIONING` - Stedi has begun the process of completing the enrollment\ \ with the payer.\n - `LIVE` - The enrollment process is complete, and\ \ the specified provider can begin exchanging the listed transaction types\ \ with the payer.\n - `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.\n - `CANCELED`\ \ - The enrollment has been terminated per customer or provider request." statusLastUpdatedAt: description: 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. format: date-time type: string submittedAt: description: 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`. format: date-time type: string tasks: description: Tasks associated with this enrollment, such as reminders or follow-ups. items: $ref: '#/components/schemas/Task' type: array transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. updatedAt: description: The date and time when the enrollment was updated. format: date-time type: string required: - createdAt - id - payer - provider - source - status - statusLastUpdatedAt - transactions - updatedAt type: object ExportEnrollmentsCsvRequestContent: description: Input for ExportEnrollmentsCsv operation. Supports the same filtering options as ListEnrollments (excluding pagination). properties: createdFrom: description: '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.' format: date-time type: string createdTo: description: '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.' format: date-time type: string filter: description: '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 importId: description: 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 lastEraReceivedFrom: description: '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.' format: date-time type: string lastEraReceivedTo: description: '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.' format: date-time type: string payerIds: description: "Filter for enrollments associated with specific [Stedi payer\ \ IDs](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id).\n\ \nThis 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`. \n\nYou 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." items: type: string type: array providerIds: description: '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.' items: type: string type: array providerNames: description: '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.' items: type: string type: array providerNpis: description: '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.' items: type: string type: array providerTaxIds: description: '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.' items: type: string type: array requestedEffectiveDateFrom: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string requestedEffectiveDateTo: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string sources: description: '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.' items: $ref: '#/components/schemas/EnrollmentSource' type: array status: description: '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.' items: $ref: '#/components/schemas/EnrollmentStatus' type: array statusUpdatedFrom: description: '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.' format: date-time type: string statusUpdatedTo: description: '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.' format: date-time type: string transactions: description: '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.' items: $ref: '#/components/schemas/TransactionType' type: array userEmails: description: '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`.' items: description: A valid email address following standard email format. minLength: 5 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])?)*$ type: string type: array type: object ExportEnrollmentsCsvResponseContent: description: Output containing export results. If no enrollments found, downloadUrl and filename will be undefined and recordCount will be 0. properties: downloadUrl: description: A presigned URL for downloading the generated CSV file from S3. Undefined if no enrollments found. type: string filename: description: The filename of the generated CSV file. Undefined if no enrollments found. type: string recordCount: description: The number of enrollment records exported to the CSV file. 0 if no enrollments found. type: number required: - recordCount type: object FollowInstructionsTask: description: Follow-instructions task data containing text instructions for a user to follow. properties: instructions: description: Human-readable instructions for the responsible party to follow. minLength: 1 type: string required: - instructions type: object GatewayTimeoutExceptionResponseContent: description: The server was acting as a gateway or proxy and did not receive a timely response from the upstream server. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object GetEnrollmentResponseContent: description: Output containing the enrollment details. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. This property is only returned for 835 ERA\ \ enrollments.\n - If not set, Stedi automatically selects a default\ \ based on the payer's supported aggregation types and the available identifiers\ \ for the provider.\n - Stedi attempts to enroll with this preference,\ \ but it's not guaranteed. Each payer has its own restrictions and behaviors.\n\ \ - This property isn't returned for enrollment records created before\ \ Stedi added support for aggregation preferences." createdAt: description: The date and time when the enrollment was created within Stedi. format: date-time type: string documents: description: '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: $ref: '#/components/schemas/EnrollmentDocument' type: array history: description: The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. items: $ref: '#/components/schemas/EnrollmentHistoryEntry' type: array id: description: The Stedi-assigned identifier for the enrollment request. type: string lastEraReceivedAt: description: "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.\n - This property is only returned\ \ for ERA enrollments in `LIVE` status with at least one matching ERA\ \ from the payer.\n - If this timestamp doesn't match your expected timeline\ \ for ERA processing, there may be an upstream issue. Contact Stedi support\ \ for assistance." format: date-time type: string payer: $ref: '#/components/schemas/EnrolledPayerOutput' description: Information about the payer the provider is enrolling with. primaryContact: $ref: '#/components/schemas/ProviderContact' description: The contact information for the provider. This is where the payer will send communications about the enrollment, if needed. provider: $ref: '#/components/schemas/AllEnrolledProviderFields' description: Information about the provider enrolling with the payer. providerTransactionAccessNumber: description: '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.' maxLength: 10 minLength: 4 pattern: ^[a-zA-Z0-9]+$ type: string reason: description: 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. type: string requestedEffectiveDate: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' description: The source of this enrollment. status: $ref: '#/components/schemas/EnrollmentStatus' description: "The status of the enrollment. You can submit enrollments with\ \ 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 `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status.\n\ \ - `DRAFT` - You're still editing the enrollment and haven't submitted\ \ it to Stedi.\n - `STEDI_ACTION_REQUIRED` - You have submitted the enrollment\ \ and it is ready for Stedi to begin processing.\n - `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.\n - `SUBMITTED` -\ \ (Deprecated) Legacy status being phased out in favor of the more specific\ \ action-required statuses. If you set an enrollment request to `SUBMITTED`,\ \ Stedi treats it as `STEDI_ACTION_REQUIRED`.\n - `PROVISIONING` - Stedi\ \ has begun the process of completing the enrollment with the payer.\n\ \ - `LIVE` - The enrollment process is complete, and the specified provider\ \ can begin exchanging the listed transaction types with the payer.\n\ \ - `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.\n - `CANCELED` - The enrollment\ \ has been terminated per customer or provider request." statusLastUpdatedAt: description: 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. format: date-time type: string submittedAt: description: 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. format: date-time type: string tasks: description: Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. items: $ref: '#/components/schemas/Task' type: array transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. updatedAt: description: The date and time when the enrollment was updated. format: date-time type: string userEmail: description: "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.\n - This email address can\ \ be different from the `primaryContact.email` where the payer sends communications\ \ about the enrollment.\n - 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." minLength: 5 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])?)*$ type: string required: - createdAt - id - payer - primaryContact - provider - statusLastUpdatedAt - transactions - updatedAt - userEmail type: object GetProviderResponseContent: description: Output containing the provider details. properties: contacts: description: '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.' items: $ref: '#/components/schemas/ProviderContact' type: array createdAt: description: The date and time Stedi created the provider record. format: date-time type: string id: description: A unique identifier Stedi assigns to this provider. type: string name: description: 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. minLength: 5 type: string npi: description: 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. pattern: ^[0-9]{10}$ type: string taxId: description: 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`. pattern: ^\d{9}$ type: string taxIdType: $ref: '#/components/schemas/TaxIdType' description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN` - Social Security Number. updatedAt: description: The date and time Stedi last updated the provider record. format: date-time type: string required: - id - name - npi type: object InitialEnrollmentStatus: description: 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. enum: - DRAFT - SUBMITTED - STEDI_ACTION_REQUIRED type: string InternalFailureExceptionResponseContent: description: The server response when an unexpected error occurred while processing request. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object ListEnrollmentsResponseContent: description: Output containing a paginated list of enrollments. properties: items: description: Details about the enrollments matching the search criteria. items: $ref: '#/components/schemas/EnrollmentSummary' type: array nextPageToken: description: Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. maxLength: 1024 minLength: 1 type: string totalCount: description: The total count of enrollments matching the filter criteria, regardless of pagination. type: number type: object ListProvidersResponseContent: description: Output containing a paginated list of providers. properties: items: description: Details about every provider your organization has created within Stedi. items: $ref: '#/components/schemas/ProviderSummary' type: array nextPageToken: description: Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. maxLength: 1024 minLength: 1 type: string type: object PdfUploadResponse: description: Response data containing the uploaded PDF after completion. properties: documentId: description: 'The document ID for the uploaded PDF, such as `019375d0-1234-7890-abcd-567890abcdef`. This ID is available in the response from the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. You can also retrieve it from the [Retrieve Enrollment](https://www.stedi.com/docs/healthcare/api-reference/get-enrollment) or [List Enrollments](https://www.stedi.com/docs/healthcare/api-reference/get-enrollment-list-enrollments) endpoints.' minLength: 1 type: string fileName: description: The filename of the uploaded PDF, such as `completed-enrollment-form.pdf`. This should match the `name` you supplied when you called the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. minLength: 1 type: string required: - documentId - fileName type: object ProvideFilledPdfTask: description: A task that requires uploading a PDF document. Stedi will either provide an enrollment template PDF to download and complete, or provide instructions for uploading supporting documentation, such as a W-9 form. properties: documentDownloadUrl: description: 'The API URL for the [Download Enrollment Document](/healthcare/api-reference/get-enrollment-document-download) endpoint with the document ID prepopulated. For example: `https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download`. When you make an authenticated `GET` request to this URL, Stedi returns a pre-signed URL that you can use to download the PDF template. This property is only present when Stedi provides a template to download.' minLength: 1 type: string instructions: description: Instructions for the task. They describe what needs to be completed in a downloadable PDF template or what type of supporting documentation to upload. minLength: 1 type: string required: - instructions type: object ProvideInformationResponse: description: Response data for `ProvideInformation` task completion. properties: response: description: Notes or confirmation text from the responsible party in response to completing a `ProvideInformation` task. minLength: 1 type: string required: - response type: object ProvideInformationTask: description: Task for collecting specific information from the provider. properties: instructions: description: Instructions explaining how to provide the necessary information. minLength: 1 type: string required: - instructions type: object ProviderContact: description: "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.\n\nThese contacts should specify where payers\ \ should send communications about the enrollment, if needed.\n - Either\ \ `organizationName` _or_ `firstName` and `lastName` are required.\n - 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.\n - 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.\n - These contacts\ \ are for convenience only. You can specify different contacts on enrollment\ \ requests as needed." properties: city: description: The contact's city. This should match exactly what the payer has on file for the provider. minLength: 2 type: string email: description: 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. minLength: 5 pattern: ^\S+@\S+\.\S+$ type: string firstName: description: The contact's first name. This should match exactly what the payer has on file for the provider. type: string lastName: description: The contact's last name. This should match exactly what the payer has on file for the provider. type: string organizationName: description: The contact's business name. This should match exactly what the payer has on file for the provider. type: string phone: description: 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. pattern: ^(?:[\s().-]*\d){10}[\s().-]*$ type: string state: $ref: '#/components/schemas/UsState' description: The contact's two-letter state abbreviation. For example, `PA`, or `MD`. This should match exactly what the payer has on file for the provider. streetAddress1: description: 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. minLength: 1 type: string streetAddress2: description: The contact's street address continued. This should match exactly what the payer has on file for the provider. type: string zipCode: description: The contact's five-digit ZIP code. This should match exactly what the payer has on file for the provider. minLength: 5 type: string required: - city - email - phone - state - streetAddress1 - zipCode type: object ProviderSummary: description: Summary information for a provider, typically used in list operations. properties: id: description: A unique identifier Stedi assigns to this provider internally. type: string name: description: 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. type: string npi: description: The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). type: string taxId: description: 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`. type: string taxIdType: $ref: '#/components/schemas/TaxIdType' description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN` - Social Security Number. required: - id - name - npi type: object QuotaExceededExceptionResponseContent: description: The server response for the usage plan quota exceeded error. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object ResourceNotFoundExceptionResponseContent: description: The requested resource could not be found. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object ResponsibleParty: description: The party responsible for completing a task. enum: - PROVIDER - STEDI type: string ServiceUnavailableExceptionResponseContent: description: The server cannot handle the request due to technical reasons. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object Task: description: A task representing work that needs to be completed. properties: completedAt: description: The timestamp when the task was completed. format: date-time type: string definition: $ref: '#/components/schemas/TaskDefinition' description: A definition that determines the task's behavior, requirements, and data. id: description: The unique, Stedi-assigned identifier for the task. type: string isComplete: description: Whether the task has been marked as complete through either the API or the Stedi portal. type: boolean rank: description: 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`. minimum: 0 type: number responseData: $ref: '#/components/schemas/TaskResponseData' description: Data collected when the task was completed. responsibleParty: $ref: '#/components/schemas/ResponsibleParty' description: The party responsible for completing this task. required: - definition - id - isComplete - rank - responsibleParty type: object TaskDefinition: description: A discriminated union of task definitions. Supports multiple task types with future extensibility. oneOf: - properties: followInstructions: $ref: '#/components/schemas/FollowInstructionsTask' description: A task that requires the responsible party to follow specific instructions. required: - followInstructions title: followInstructions type: object - properties: provideFilledPdf: $ref: '#/components/schemas/ProvideFilledPdfTask' description: A task that requires uploading a completed PDF document. Stedi may either provide a template to download and complete, or provide instructions for uploading supporting documentation, such as a W-9 form. required: - provideFilledPdf title: provideFilledPdf type: object - properties: provideInformation: $ref: '#/components/schemas/ProvideInformationTask' description: A task that requires the provider to supply specific information. required: - provideInformation title: provideInformation type: object TaskResponseData: description: A discriminated union of task response data. Contains structured data collected when completing specific task types. oneOf: - properties: pdfUpload: $ref: '#/components/schemas/PdfUploadResponse' description: Add details from a PDF that has been uploaded to complete a `provideFilledPdf` task. Required when completing a task where `task.definition.provideFilledPdf` is present. required: - pdfUpload title: pdfUpload type: object - properties: provideInformation: $ref: '#/components/schemas/ProvideInformationResponse' description: Provide notes or confirmation text to Stedi. required: - provideInformation title: provideInformation type: object TaxIdType: description: The type of tax identification number. enum: - EIN - SSN type: string TransactionType: description: Types of healthcare transactions supported for enrollment. enum: - claimStatus - eligibilityCheck - institutionalClaimSubmission - professionalClaimSubmission - dentalClaimSubmission - claimPayment - solicitedClaimAttachment - unsolicitedClaimAttachment type: string UnauthorizedExceptionResponseContent: description: The server response when the authorizer failed to authenticate the caller. properties: code: description: Error classification code type: string message: description: Human-readable error message type: string required: - message type: object UpdateEnrollmentRequestContent: description: Input for UpdateEnrollment. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. Only set this property for 835 ERA enrollments.\n\ \ - If you include this property for a non-ERA enrollment, Stedi rejects\ \ the enrollment request with an HTTP `400` error.\n - If the payer doesn't\ \ support the requested aggregation type, Stedi rejects the enrollment\ \ request with an HTTP `400` error.\n - If not set, Stedi automatically\ \ selects a default based on the payer's supported aggregation types and\ \ the available identifiers for the provider.\n - Stedi will attempt\ \ to enroll with this preference, but it's not guaranteed. Each payer\ \ has its own restrictions and behaviors." payer: $ref: '#/components/schemas/EnrolledPayerInput' description: Information about the payer the provider is enrolling with. primaryContact: $ref: '#/components/schemas/ProviderContact' description: "The contact information for the provider. This is where the\ \ payer will send communications about the enrollment, if needed.\n -\ \ Either `organizationName` _or_ `firstName` and `lastName` are required.\n\ \ - 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.\n - If you're submitting enrollment\ \ requests on a provider's behalf, 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 status instead of the provider directly.\n\ \ - This contact information doesn't need to match existing contacts\ \ defined on the provider record. It also doesn't modify or replace contacts\ \ on the provider record." provider: $ref: '#/components/schemas/EnrolledProviderInput' description: Information about the provider enrolling with the payer. providerTransactionAccessNumber: description: '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.' maxLength: 10 minLength: 4 pattern: ^[a-zA-Z0-9]+$ type: string reason: deprecated: true description: '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.' type: string requestedEffectiveDate: description: "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.\n\nStedi processes enrollments accordingly,\ \ but can't guarantee that the enrollment will be effective on this exact\ \ date.\n - You can submit today's date or a future date up to 6 months\ \ from today.\n - If not set for draft enrollments, this property remains\ \ empty.\n - If not set for submitted enrollments, Stedi defaults to\ \ the enrollment's submission date.\n - If you include this property\ \ for a payer that doesn't support requested effective dates, Stedi rejects\ \ the request with an HTTP `400` error." maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' deprecated: true description: 'This shape is deprecated since 2025-12-23: Stedi ignores this property for API requests, and it will be removed in a future release. The enrollment source is always set to `API`.' status: $ref: '#/components/schemas/EnrollmentStatus' description: "The status of the enrollment. You can submit enrollments with\ \ 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 `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status.\n\ \ - `DRAFT` - You're still editing the enrollment and haven't submitted\ \ it to Stedi.\n - `STEDI_ACTION_REQUIRED` - You have submitted the enrollment\ \ and it is ready for Stedi to begin processing.\n - `SUBMITTED` - (Deprecated)\ \ Legacy status being phased out in favor of the more specific action-required\ \ statuses. If you set an enrollment request to `SUBMITTED`, Stedi treats\ \ it as `STEDI_ACTION_REQUIRED`." transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. userEmail: description: "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.\n - This email address can\ \ be different from the `primaryContact.email` where the payer sends communications\ \ about the enrollment.\n - 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." minLength: 5 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])?)*$ type: string required: - payer - primaryContact - provider - transactions - userEmail type: object UpdateEnrollmentResponseContent: description: Output containing the updated enrollment details. properties: aggregationPreference: $ref: '#/components/schemas/AggregationPreference' description: "Preference for how the payer should group 835 Electronic Remittance\ \ Advice (ERA) transactions. This property is only returned for 835 ERA\ \ enrollments.\n - If not set, Stedi automatically selects a default\ \ based on the payer's supported aggregation types and the available identifiers\ \ for the provider.\n - Stedi attempts to enroll with this preference,\ \ but it's not guaranteed. Each payer has its own restrictions and behaviors.\n\ \ - This property isn't returned for enrollment records created before\ \ Stedi added support for aggregation preferences." createdAt: description: The date and time when the enrollment was created within Stedi. format: date-time type: string documents: description: Documents associated with this enrollment, excluding deleted documents. items: $ref: '#/components/schemas/EnrollmentDocument' type: array history: description: The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. items: $ref: '#/components/schemas/EnrollmentHistoryEntry' type: array id: description: The Stedi-assigned identifier for the enrollment request. type: string lastEraReceivedAt: description: "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.\n - This property is only returned\ \ for ERA enrollments in `LIVE` status with at least one matching ERA\ \ from the payer.\n - If this timestamp doesn't match your expected timeline\ \ for ERA processing, there may be an upstream issue. Contact Stedi support\ \ for assistance." format: date-time type: string payer: $ref: '#/components/schemas/EnrolledPayerOutput' description: Information about the payer the provider is enrolling with. primaryContact: $ref: '#/components/schemas/ProviderContact' description: The contact information for the provider. This is where the payer will send communications about the enrollment, if needed. provider: $ref: '#/components/schemas/AllEnrolledProviderFields' description: Information about the provider enrolling with the payer. providerTransactionAccessNumber: description: '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.' maxLength: 10 minLength: 4 pattern: ^[a-zA-Z0-9]+$ type: string reason: description: 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. type: string requestedEffectiveDate: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string source: $ref: '#/components/schemas/EnrollmentSource' description: The source of this enrollment. status: $ref: '#/components/schemas/EnrollmentStatus' description: "The status of the enrollment. You can submit enrollments with\ \ 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 `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status.\n\ \ - `DRAFT` - You're still editing the enrollment and haven't submitted\ \ it to Stedi.\n - `STEDI_ACTION_REQUIRED` - You have submitted the enrollment\ \ and it is ready for Stedi to begin processing.\n - `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.\n - `SUBMITTED` -\ \ (Deprecated) Legacy status being phased out in favor of the more specific\ \ action-required statuses. If you set an enrollment request to `SUBMITTED`,\ \ Stedi treats it as `STEDI_ACTION_REQUIRED`.\n - `PROVISIONING` - Stedi\ \ has begun the process of completing the enrollment with the payer.\n\ \ - `LIVE` - The enrollment process is complete, and the specified provider\ \ can begin exchanging the listed transaction types with the payer.\n\ \ - `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.\n - `CANCELED` - The enrollment\ \ has been terminated per customer or provider request." statusLastUpdatedAt: description: 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. format: date-time type: string submittedAt: description: 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. format: date-time type: string tasks: description: Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. items: $ref: '#/components/schemas/Task' type: array transactions: $ref: '#/components/schemas/EnrolledTransactionsList' description: The type of transactions included in the enrollment. updatedAt: description: The date and time when the enrollment was updated. format: date-time type: string userEmail: description: "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.\n - This email address can\ \ be different from the `primaryContact.email` where the payer sends communications\ \ about the enrollment.\n - 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." minLength: 5 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])?)*$ type: string required: - createdAt - id - payer - primaryContact - provider - statusLastUpdatedAt - transactions - updatedAt - userEmail type: object UpdateProviderRequestContent: description: Input for UpdateProvider. properties: contacts: description: "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.\n\nThese contacts should specify where\ \ payers should send communications about the enrollment, if needed.\n\ \ - Either `organizationName` _or_ `firstName` and `lastName` are required.\n\ \ - 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.\n - 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.\n\ \ - These contacts are for convenience only. You can specify different\ \ contacts on enrollment requests as needed." items: $ref: '#/components/schemas/ProviderContact' type: array name: description: 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. minLength: 5 type: string required: - name type: object UpdateProviderResponseContent: description: Output containing the updated provider details. properties: contacts: description: '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.' items: $ref: '#/components/schemas/ProviderContact' type: array createdAt: description: The date and time Stedi created the provider record. format: date-time type: string id: description: A unique identifier Stedi assigns to this provider. type: string name: description: 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. minLength: 5 type: string npi: description: '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`.' pattern: ^[0-9]{10}$ type: string taxId: description: '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`.' pattern: ^\d{9}$ type: string taxIdType: $ref: '#/components/schemas/TaxIdType' description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN` - Social Security Number. updatedAt: description: The date and time Stedi last updated the provider record. format: date-time type: string required: - id - name - npi type: object UpdateTaskPostRequestContent: description: Input for UpdateTaskPost operation. Identical to UpdateTaskInput. properties: completed: description: Indicates whether the task is completed. Set to `true` to mark the task as complete. If omitted, the default is `false`. type: boolean responseData: $ref: '#/components/schemas/TaskResponseData' description: "Additional data you can submit to Stedi when completing a\ \ task.\n - Required for `provideFilledPdf` tasks. Use the `pdfUpload`\ \ object type. [Learn more](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#pdf-workflow)\n\ \ - Optional for `provideInformation` tasks.\n - Stedi ignores this\ \ object for `followInstructions` tasks." type: object UpdateTaskPostResponseContent: description: Output for UpdateTaskPost operation. Identical to UpdateTaskOutput. properties: task: $ref: '#/components/schemas/Task' description: The updated task record. required: - task type: object UsState: description: United States state and territory codes using standard two-letter abbreviations. enum: - 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 type: string ValidationExceptionField: description: Describes one specific validation failure for an input member. properties: message: description: A detailed description of the validation failure. type: string path: description: A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. type: string required: - message - path type: object ValidationExceptionResponseContent: description: 'A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.' properties: fieldList: description: '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.' items: $ref: '#/components/schemas/ValidationExceptionField' type: array message: description: A summary of the validation failure. type: string required: - message type: object securitySchemes: httpApiKeyAuth: description: A [Stedi API Key](https://portal.stedi.com/app/settings/api-keys) for authentication. in: header name: Authorization type: apiKey info: contact: email: healthcare@stedi.com description: 'The Stedi Enrollment Service manages provider enrollments with healthcare payers. It tracks enrollment status, provider details, and supports batch enrollment processing to ensure providers have the necessary credentials before processing healthcare transactions. ' license: name: Proprietary url: https://stedi.com title: Stedi Enrollment version: '2024-09-01' openapi: 3.0.3 paths: /documents/{documentId}: delete: description: Deletes the specified PDF document associated with a transaction enrollment. operationId: DeleteEnrollmentDocument parameters: - description: 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. examples: DeleteEnrollmentDocument_example1: description: '' summary: Delete Enrollment Document value: doc-123e4567-e89b-12d3-a456-426614174000 in: path name: documentId required: true schema: description: 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': description: DeleteEnrollmentDocument 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /documents/{documentId}/download: get: description: Returns a pre-signed URL to download the specified enrollment document. operationId: CreateEnrollmentDocumentDownload parameters: - description: 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. examples: CreateEnrollmentDocumentDownload_example1: description: '' summary: Create Enrollment Document Download value: doc-123e4567-e89b-12d3-a456-426614174000 in: path name: documentId required: true schema: description: 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': content: application/json: examples: CreateEnrollmentDocumentDownload_example1: description: '' summary: Create Enrollment Document Download value: 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=... schema: $ref: '#/components/schemas/CreateEnrollmentDocumentDownloadResponseContent' description: CreateEnrollmentDocumentDownload 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /enrollments: get: description: Lists transaction enrollment records with optional filtering and pagination. operationId: ListEnrollments parameters: - description: The maximum number of elements to return in a page. If not specified, the default is 100. in: query name: pageSize schema: description: The maximum number of elements to return in a page. If not specified, the default is 100. maximum: 500 minimum: 1 type: number - description: 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. in: query name: pageToken schema: description: 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. maxLength: 1024 minLength: 1 type: string - description: '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.' in: query name: filter schema: description: '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 - description: '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.' explode: true in: query name: status schema: description: '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.' items: $ref: '#/components/schemas/EnrollmentStatus' type: array style: form - description: '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.' explode: true in: query name: providerNpis schema: description: '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.' items: type: string type: array style: form - description: '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.' explode: true in: query name: providerTaxIds schema: description: '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.' items: type: string type: array style: form - description: '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.' explode: true in: query name: providerNames schema: description: '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.' items: type: string type: array style: form - description: '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.' explode: true in: query name: providerIds schema: description: '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.' items: type: string type: array style: form - description: "Filter for enrollments associated with specific [Stedi payer\ \ IDs](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id).\n\ \nThis 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`. \n\nYou 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." explode: true in: query name: payerIds schema: description: "Filter for enrollments associated with specific [Stedi payer\ \ IDs](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id).\n\ \nThis 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`. \n\nYou 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." items: type: string type: array style: form - description: '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.' explode: true in: query name: sources schema: description: '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.' items: $ref: '#/components/schemas/EnrollmentSource' type: array style: form - description: '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.' explode: true in: query name: transactions schema: description: '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.' items: $ref: '#/components/schemas/TransactionType' type: array style: form - description: '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.' in: query name: createdFrom schema: description: '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.' format: date-time type: string - description: '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.' in: query name: createdTo schema: description: '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.' format: date-time type: string - description: '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.' in: query name: statusUpdatedFrom schema: description: '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.' format: date-time type: string - description: '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.' in: query name: statusUpdatedTo schema: description: '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.' format: date-time type: string - description: 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. in: query name: importId schema: description: 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 - description: '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.' in: query name: requestedEffectiveDateFrom schema: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string - description: '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.' in: query name: requestedEffectiveDateTo schema: description: '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.' maxLength: 8 minLength: 8 pattern: ^\d{8}$ type: string - description: '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.' in: query name: lastEraReceivedFrom schema: description: '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.' format: date-time type: string - description: '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.' in: query name: lastEraReceivedTo schema: description: '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.' format: date-time type: string - description: '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`.' explode: true in: query name: userEmails schema: description: '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`.' items: description: A valid email address following standard email format. minLength: 5 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])?)*$ type: string type: array style: form - description: "Sort the results by one or more properties. By default, Stedi\ \ sorts results by the `createdAt` property in descending order.\n\nSupply\ \ 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).\n - When you don't include\ \ `id`, Stedi automatically adds it as the final sort criterion to ensure\ \ deterministic results.\n - 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.\n\n**Supported\ \ properties:** `updatedAt`, `statusLastUpdatedAt`, `id`, `requestedEffectiveDate`,\ \ `lastEraReceivedAt`\n\nExamples:\n - Sort by `updatedAt` in descending\ \ order: `?sortBy=updatedAt:desc`\n - Sort by `statusLastUpdatedAt` in\ \ ascending order: `?sortBy=statusLastUpdatedAt:asc`\n - Sort by `updatedAt`\ \ and then by `id`: `?sortBy=updatedAt:desc&sortBy=id:asc`" explode: true in: query name: sortBy schema: description: "Sort the results by one or more properties. By default, Stedi\ \ sorts results by the `createdAt` property in descending order.\n\nSupply\ \ 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).\n - When you don't\ \ include `id`, Stedi automatically adds it as the final sort criterion\ \ to ensure deterministic results.\n - 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.\n\n**Supported properties:** `updatedAt`, `statusLastUpdatedAt`,\ \ `id`, `requestedEffectiveDate`, `lastEraReceivedAt`\n\nExamples:\n \ \ - Sort by `updatedAt` in descending order: `?sortBy=updatedAt:desc`\n\ \ - Sort by `statusLastUpdatedAt` in ascending order: `?sortBy=statusLastUpdatedAt:asc`\n\ \ - Sort by `updatedAt` and then by `id`: `?sortBy=updatedAt:desc&sortBy=id:asc`" items: pattern: ^\w+:(asc|desc)$ type: string type: array style: form responses: '200': content: application/json: examples: ListEnrollments_example1: description: '' summary: List Enrollments value: 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: followInstructions: instructions: 'Please follow these instructions: .' 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: followInstructions: 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: provideFilledPdf: instructions: Please download the PDF, fill it out, and upload the completed version to this enrollment request. id: 019ce833-b234-75f1-9599-0f14ba643709 isComplete: true rank: 0 responseData: pdfUpload: documentId: dc6665a5-7b97-4agh-8c74-a00a336c2989 fileName: pdf-agreement.pdf responsibleParty: PROVIDER transactions: eligibilityCheck: enroll: true updatedAt: '2025-04-25T10:30:00Z' nextPageToken: 945ff6de213d3ef481d028065d4c12fb996a166a3a90ef98564318decfae50ce4b36d74b7e9d9bafa6e1d169 totalCount: 42 schema: $ref: '#/components/schemas/ListEnrollmentsResponseContent' description: ListEnrollments 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response post: description: Creates a new transaction enrollment request. Transaction enrollment registers a provider to exchange specific transaction types with a payer. operationId: CreateEnrollment requestBody: content: application/json: examples: CreateEnrollment_example1: description: '' summary: Create Enrollment value: 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 schema: $ref: '#/components/schemas/CreateEnrollmentRequestContent' required: true responses: '200': content: application/json: examples: CreateEnrollment_example1: description: '' summary: Create Enrollment value: 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 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 schema: $ref: '#/components/schemas/CreateEnrollmentResponseContent' description: CreateEnrollment 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /enrollments/export: post: description: Exports enrollment records as a CSV file with optional filtering. Supports the same filtering parameters as ListEnrollments operation. Returns a presigned URL to download the generated CSV file from S3. operationId: ExportEnrollmentsCsv requestBody: content: application/json: examples: ExportEnrollmentsCsv_example1: description: '' summary: Export All Enrollments as CSV value: {} ExportEnrollmentsCsv_example2: description: '' summary: Export Filtered Enrollments as CSV value: createdFrom: '2025-01-01T00:00:00Z' createdTo: '2025-12-31T23:59:59Z' status: - LIVE - SUBMITTED ExportEnrollmentsCsv_example3: description: '' summary: No Enrollments Found value: status: - CANCELED schema: $ref: '#/components/schemas/ExportEnrollmentsCsvRequestContent' responses: '200': content: application/json: examples: ExportEnrollmentsCsv_example1: description: '' summary: Export All Enrollments as CSV value: downloadUrl: https://s3.amazonaws.com/stedi-enrollment-exports/stedi_enrollment_records_export_20250625.csv?presigned-params filename: stedi_enrollment_records_export_20250625.csv recordCount: 150 ExportEnrollmentsCsv_example2: description: '' summary: Export Filtered Enrollments as CSV value: downloadUrl: https://s3.amazonaws.com/stedi-enrollment-exports/stedi_enrollment_records_export_20250625.csv?presigned-params filename: stedi_enrollment_records_export_20250625.csv recordCount: 75 ExportEnrollmentsCsv_example3: description: '' summary: No Enrollments Found value: recordCount: 0 schema: $ref: '#/components/schemas/ExportEnrollmentsCsvResponseContent' description: ExportEnrollmentsCsv 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /enrollments/{enrollmentId}: delete: description: Deletes an enrollment request. Only enrollments in DRAFT status can be deleted. This operation is idempotent. operationId: DeleteEnrollment parameters: - description: The Stedi-assigned identifier for the enrollment you want to delete. examples: DeleteEnrollment_example1: description: '' summary: Delete Enrollment value: db6675c5-7bg7-4af9-8c68-a54a336d2911 in: path name: enrollmentId required: true schema: description: The Stedi-assigned identifier for the enrollment you want to delete. type: string responses: '200': description: DeleteEnrollment 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response get: description: Retrieves an enrollment request by its ID. This operation returns the complete enrollment details including provider and payer information. operationId: GetEnrollment parameters: - description: The Stedi-assigned identifier for the enrollment you want to retrieve. examples: GetEnrollment_example1: description: '' summary: Get Enrollment value: db6675c5-7bg7-4af9-8c68-a54a336d2911 in: path name: enrollmentId required: true schema: description: The Stedi-assigned identifier for the enrollment you want to retrieve. type: string responses: '200': content: application/json: examples: GetEnrollment_example1: description: '' summary: Get Enrollment value: 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 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: followInstructions: 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: provideFilledPdf: instructions: Please download the PDF, fill it out, and upload the completed version to this enrollment request. id: 019ce833-b234-75f1-9599-0f14ba643709 isComplete: true rank: 0 responseData: pdfUpload: documentId: dc6665a5-7b97-4agh-8c74-a00a336c2989 fileName: pdf-agreement.pdf responsibleParty: PROVIDER transactions: professionalClaimSubmission: enroll: true updatedAt: '2023-11-07T05:31:56Z' userEmail: test@example.com schema: $ref: '#/components/schemas/GetEnrollmentResponseContent' description: GetEnrollment 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response post: description: Updates an existing enrollment request. Only enrollments in DRAFT status can be updated. Once an enrollment is submitted, it cannot be modified. operationId: UpdateEnrollment parameters: - description: The Stedi-assigned identifier for the enrollment. examples: UpdateEnrollment_example1: description: '' summary: Update Enrollment value: db6675c5-7bg7-4af9-8c68-a54a336d2911 in: path name: enrollmentId required: true schema: description: The Stedi-assigned identifier for the enrollment. type: string requestBody: content: application/json: examples: UpdateEnrollment_example1: description: '' summary: Update Enrollment value: 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 schema: $ref: '#/components/schemas/UpdateEnrollmentRequestContent' required: true responses: '200': content: application/json: examples: UpdateEnrollment_example1: description: '' summary: Update Enrollment value: 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 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 schema: $ref: '#/components/schemas/UpdateEnrollmentResponseContent' description: UpdateEnrollment 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /enrollments/{enrollmentId}/documents: post: description: Returns a pre-signed URL to upload a PDF document for the specified transaction enrollment. operationId: CreateEnrollmentDocumentUpload parameters: - description: 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. examples: CreateEnrollmentDocumentUpload_example1: description: '' summary: Create Enrollment Document Upload value: db6675c5-7bg7-4af9-8c68-a54a336d2911 in: path name: enrollmentId required: true schema: description: 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 requestBody: content: application/json: examples: CreateEnrollmentDocumentUpload_example1: description: '' summary: Create Enrollment Document Upload value: name: provider-license.pdf taskId: 11111111-1111-4111-8111-111111111111 schema: $ref: '#/components/schemas/CreateEnrollmentDocumentUploadRequestContent' required: true responses: '200': content: application/json: examples: CreateEnrollmentDocumentUpload_example1: description: '' summary: Create Enrollment Document Upload value: 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=... schema: $ref: '#/components/schemas/CreateEnrollmentDocumentUploadResponseContent' description: CreateEnrollmentDocumentUpload 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /providers: get: description: Lists providers with optional filtering and pagination. operationId: ListProviders parameters: - description: The maximum number of elements to return in a page. If not specified, the default is 100. in: query name: pageSize schema: description: The maximum number of elements to return in a page. If not specified, the default is 100. maximum: 500 minimum: 1 type: number - description: 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. in: query name: pageToken schema: description: 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. maxLength: 1024 minLength: 1 type: string - description: '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`).' in: query name: filter schema: description: '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 - description: Filter for providers with NPIs matching any value in this list. explode: true in: query name: providerNpis schema: description: Filter for providers with NPIs matching any value in this list. items: description: The provider NPI. type: string type: array style: form - description: Filter for providers with tax IDs matching any value in this list. explode: true in: query name: providerTaxIds schema: description: Filter for providers with tax IDs matching any value in this list. items: description: The provider tax ID. type: string type: array style: form responses: '200': content: application/json: examples: ListProviders_example1: description: '' summary: List Providers value: items: - id: 10334e76-f073-4b5d-8984-81d8e5107857 name: BDQ Dental Inc npi: '1999999992' taxId: '555123456' taxIdType: EIN - id: 10234e76-f067-4b5d-8984-81d8e5107123 name: Example Medical Associates npi: '1999999984' taxId: '100100111' taxIdType: EIN schema: $ref: '#/components/schemas/ListProvidersResponseContent' description: ListProviders 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response post: description: Creates a new provider record. Providers must be created before they can be enrolled with payers. operationId: CreateProvider requestBody: content: application/json: examples: CreateProvider_example1: description: '' summary: Create Provider value: 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 schema: $ref: '#/components/schemas/CreateProviderRequestContent' required: true responses: '200': content: application/json: examples: CreateProvider_example1: description: '' summary: Create Provider value: contacts: - city: Chevy Chase email: bob@fortdental.center firstName: Bob lastName: Dentist organizationName: '' phone: '5551232135' state: MD streetAddress1: 123 Some Str zipCode: '20814' - city: Chevy Chase 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' schema: $ref: '#/components/schemas/CreateProviderResponseContent' description: CreateProvider 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /providers/{providerId}: delete: description: Deletes a provider record. Providers can only be deleted if they have no associated enrollments. This operation is idempotent. operationId: DeleteProvider parameters: - description: The Stedi-assigned identifier for the provider you want to delete. examples: DeleteProvider_example1: description: '' summary: Delete Provider value: 10334e76-f073-4b5d-8984-81d8e5107857 in: path name: providerId required: true schema: description: The Stedi-assigned identifier for the provider you want to delete. type: string responses: '200': description: DeleteProvider 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response get: description: Retrieves a provider record by its ID. This operation returns the complete provider details including contact information. operationId: GetProvider parameters: - description: The unique ID Stedi assigned to the provider when it was created in the system. examples: GetProvider_example1: description: '' summary: Get Provider value: 10334e76-f073-4b5d-8984-81d8e5107857 in: path name: providerId required: true schema: description: The unique ID Stedi assigned to the provider when it was created in the system. type: string responses: '200': content: application/json: examples: GetProvider_example1: description: '' summary: Get Provider value: contacts: - city: Chevy Chase email: bob@fortdental.center firstName: Bob lastName: Dentist organizationName: '' phone: '5551234567' state: MD streetAddress1: 123 Some Str zipCode: '20814' - city: Chevy Chase 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' schema: $ref: '#/components/schemas/GetProviderResponseContent' description: GetProvider 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response post: description: Updates an existing provider's information. Note that NPI and tax ID cannot be changed after creation. operationId: UpdateProvider parameters: - description: The Stedi-assigned identifier for the provider you want to update. examples: UpdateProvider_example1: description: '' summary: Update Provider value: 10334e76-f073-4b5d-8984-81d8e5107857 in: path name: providerId required: true schema: description: The Stedi-assigned identifier for the provider you want to update. type: string requestBody: content: application/json: examples: UpdateProvider_example1: description: '' summary: Update Provider value: 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 schema: $ref: '#/components/schemas/UpdateProviderRequestContent' required: true responses: '200': content: application/json: examples: UpdateProvider_example1: description: '' summary: Update Provider value: contacts: - city: A City 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' schema: $ref: '#/components/schemas/UpdateProviderResponseContent' description: UpdateProvider 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response /tasks/{taskId}: post: description: Updates a task associated with an enrollment. operationId: UpdateTaskPost parameters: - description: 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. examples: UpdateTaskPost_example1: description: '' summary: Update provideInformation task value: 01937d50-1234-7890-abcd-567890abcdef UpdateTaskPost_example2: description: '' summary: Update provideFilledPdf task value: 019ce833-b234-75f1-9599-0f14ba643709 in: path name: taskId required: true schema: description: 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 requestBody: content: application/json: examples: UpdateTaskPost_example1: description: '' summary: Update provideInformation task value: completed: true responseData: provideInformation: response: I have completed the required steps as instructed. UpdateTaskPost_example2: description: '' summary: Update provideFilledPdf task value: completed: true responseData: pdfUpload: documentId: doc-123e4567-e89b-12d3-a456-426614174000 fileName: completed-documentation.pdf schema: $ref: '#/components/schemas/UpdateTaskPostRequestContent' responses: '200': content: application/json: examples: UpdateTaskPost_example1: description: '' summary: Update provideInformation task value: task: completedAt: '2024-06-01T12:00:00Z' definition: provideInformation: instructions: Please provide a brief summary of your experience. id: 01937d50-1234-7890-abcd-567890abcdef isComplete: true rank: 1 responseData: provideInformation: response: I have completed the required steps as instructed. responsibleParty: PROVIDER UpdateTaskPost_example2: description: '' summary: Update provideFilledPdf task value: task: completedAt: '2026-06-01T12:00:00Z' definition: provideFilledPdf: instructions: Please download the PDF, fill it out, and upload the completed version to this enrollment request. id: 019ce833-b234-75f1-9599-0f14ba643709 isComplete: true rank: 1 responseData: pdfUpload: documentId: doc-123e4567-e89b-12d3-a456-426614174000 fileName: completed-documentation.pdf responsibleParty: PROVIDER schema: $ref: '#/components/schemas/UpdateTaskPostResponseContent' description: UpdateTaskPost 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ValidationExceptionResponseContent' description: ValidationException 400 response '401': content: application/json: schema: $ref: '#/components/schemas/UnauthorizedExceptionResponseContent' description: UnauthorizedException 401 response '403': content: application/json: schema: $ref: '#/components/schemas/AccessDeniedExceptionResponseContent' description: AccessDeniedException 403 response '404': content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent' description: ResourceNotFoundException 404 response '429': content: application/json: schema: $ref: '#/components/schemas/QuotaExceededExceptionResponseContent' description: QuotaExceededException 429 response '500': content: application/json: schema: $ref: '#/components/schemas/InternalFailureExceptionResponseContent' description: InternalFailureException 500 response '503': content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent' description: ServiceUnavailableException 503 response '504': content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent' description: GatewayTimeoutException 504 response security: - httpApiKeyAuth: [] servers: - description: Production url: https://enrollments.us.stedi.com/2024-09-01 tags: [] x-stedi: lifecycle: general_availability product: enrollment public: true