{ "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).\n\nThe 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).\n\nThe 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.\n\nNot 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.\n\nEach 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.\n\nEach 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.\n\nThese 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.\n\nEach 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.\n\nEach 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.\n\nEach 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.\n\nNot 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.\n\nFor 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.\n\nFor 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.\n\nYou 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.\n\nFor 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.\n\nYou 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.\n\nFor 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.\n\nThe 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.\n\nYou 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.\n\nThis 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nFor 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.\n\nFor 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.\n\nYou 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.\n\nYou 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.\n\nFor 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.\n\nFor 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.\n\nYou 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.\n\nThis 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.\n\nYou 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.\n\nEach 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).\n\nThe 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.\n\nNot 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.\n\nThese 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`.\n\nThis 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.\n\nThis 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).\n\nThe 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).\n\nThe 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.\n\nNot 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.\n\nThese 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.\n\nEach 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.\n\nEach 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.\nThis should be thrown by services when a member of the input structure\nfalls outside of the modeled or documented constraints.", "properties": { "fieldList": { "description": "A list of specific failures encountered while validating the input.\nA 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.\nIt tracks enrollment status, provider details, and supports batch enrollment processing\nto ensure providers have the necessary credentials before processing healthcare transactions.\n", "license": { "name": "Proprietary", "url": "https://stedi.com" }, "title": "Stedi Enrollment", "version": "2024-09-01" }, "openapi": "3.1.0", "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.\n\nYou 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.\n\nFor 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.\n\nYou 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.\n\nFor 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nThis 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.\n\nYou 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.\n\nThis 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.\n\nYou 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.\n\nThe 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.\n\nYou 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.\n\nThe 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nYou 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nFor 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.\n\nYou 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.\n\nYou 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.\n\nFor 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.\n\nFor 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.\n\nThis 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.\n\nYou 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.\n\nThis 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.\n\nYou 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.\n\nFor 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.\n\nFor 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 } }