Enrollment tasks and PDF documents
After you submit an enrollment request, you may need to complete tasks to move the enrollment forward. Some tasks require you to upload documentation, such as completed forms or tax documents.
Stedi is automatically notified when you complete a task, and the enrollment process continues.
Task types
Stedi uses structured task definitions to collect information from providers during enrollment. Each task type is reflected in the API as tasks[].definition.
Manual tasks (recommended)
Stedi uses a flexible task definition (manualTask) to collect information for enrollment tasks. Each task can have:
- An
instructionsproperty that describes what actions the provider must take to move the enrollment forward. - A
fieldsarray with objects describing discrete pieces of information required to complete the task. Whenfieldsare present, you must supply a value for everyfieldto complete the task. Thefieldsarray may be empty if the task only requires following instructions - for example, following steps within a payer's portal. - A
linksarray (optional) with helpful resources related to the task, such as payer portal URLs or reference documentation.
Manual tasks can contain:
| Field Type | Description |
|---|---|
| No fields | The provider must follow the directions in the task's instructions property. For example, they may be asked to log into a payer portal or contact a department. This replaces legacy followInstructions tasks. |
TEXT | The provider must supply specific pieces of information required to complete the enrollment, such as their bank account information or other identifiers. This replaces legacy provideInformation tasks. |
DOCUMENT | The provider must upload PDF documentation required to complete the enrollment. This replaces legacy provideFilledPdf tasks. |
| Mixed | Combines text and document requirements in one task. For example, a provider may be asked to upload PDF documentation and supply their bank account number within the same task. |
For example, the following manualTask requests the provider's Medicaid ID and a signed agreement.
{
"definition": {
"manualTask": {
"instructions": "Please provide your Medicaid Provider Identifier and upload the signed provider agreement.",
"fields": [
{
"key": "MEDICAID_ID",
"label": "Medicaid Provider Identifier",
"fieldType": "TEXT"
},
{
"key": "SIGNED_AGREEMENT",
"label": "Signed Provider Agreement",
"fieldType": "DOCUMENT"
}
],
"links": [
{
"label": "Download Provider Agreement Template",
"url": "https://example.com/documents/provider-agreement.pdf"
}
]
}
}
}Legacy task types
The following task types will be deprecated and removed on July 20, 2026. Use manualTask for all new integrations.
- Follow instructions (
followInstructions): Complete a specific action, such as logging into a payer portal or contacting a department. - Provide information (
provideInformation): Supply specific information or confirmation to Stedi. - Provide documentation (
provideFilledPdf): Upload PDF documentation related to the enrollment.
Manage tasks
When there's a new task that requires the provider to take action, Stedi adds a task to the enrollment request with instructions and sets the enrollment status to Provider Action Required. The email address listed as the Stedi contact person will also receive a notification that there's a new task to complete.
You can complete tasks through the Stedi portal or programmatically through the API.
UI
You can review and manage tasks at the top of the enrollment request's details page in the Stedi portal. You must have the Operator role or above to complete enrollment tasks.
If the task requires documentation, the instructions will specify what you need to provide. Some tasks include a PDF template to download, fill out, and upload to Stedi. Other tasks may ask you to upload a document you already have, such as a W-9 form.

Once you've taken the required action, check the box next to the task to mark it as complete.

API
You may want to streamline your providers' workflows by allowing them to complete required enrollment tasks within your application. You can do this by integrating with Stedi's Enrollments API.
Manual tasks (manualTask) use a structured format with defined fields. The workflow to complete them varies based on the contents of the fields array.
Retrieve open tasks
When a new task is added, the enrollment status changes to Provider Action Required and Stedi emits an enrollment.task.assigned event. You can retrieve new tasks in two ways:
| Method | Description |
|---|---|
| Polling |
|
| Event destinations |
|
Follow instructions (no fields)
Use the following steps to complete tasks with an empty fields[] array:
Call the Retrieve Enrollment endpoint to get the task details.
Follow the instructions in the definition.manualTask.instructions property.
Call the Update Enrollment Task endpoint with completed: true.
Provide information (TEXT fields)
Use the following steps to complete tasks with TEXT fields:
Call the Retrieve Enrollment endpoint to get the task details.
Review the definition.manualTask.fields[] array to understand what information is required. Each field definition has the following properties:
key: The identifier you'll use when submitting values. Keys must be in SCREAMING_SNAKE_CASE format, such asMEDICAID_IDorENROLLMENT_FORM.label: User-friendly field name.description(optional): Additional context about the field.fieldType: Set toTEXTfor text input.
Gather the text values needed for each field from the provider.
Call the Update Enrollment Task endpoint a values array containing an object for each field. Each value object include the field's key and a value object containing the required text.
PDF upload (DOCUMENT fields)
Use the following steps to complete tasks with DOCUMENT fields:
Call the Retrieve Enrollment endpoint to get the task details.
Review the task details:
-
definition.manualTask.links[]: Check if these are Stedi download URLs.- Stedi download URLs start with
https://enrollments.us.stedi.com/and require authentication. You can use these to download a PDF template from Stedi for the required documentation. - External links point to resources outside Stedi (such as payer websites or reference documentation).
- Stedi download URLs start with
-
definition.manualTask.fields[]: Required document fields, each with akeyandlabel.
When a task requires downloading a form and reuploading the completed PDF, the task includes a links array with a URL to download the template.
If no links array is present, check the instructions property for details about what supporting documentation (such as the provider's W-9 form) is required. Then, skip to step 4 to upload that documentation.
To download a template:
-
Make an authenticated
GETrequest to the URL inlinks[].url. This returns a pre-signed download URL.The pre-signed URL expires after 24 hours. If the URL expires before you download the PDF, call the endpoint again to get a new one.
-
Make a
GETrequest to the returneddownloadUrlto retrieve the PDF template.
Skip this step if uploading existing documentation.
The provider should complete the PDF template according to the instructions in definition.manualTask.instructions and the field's description property.
Upload the required PDF documentation to the enrollment request. This is either a completed enrollment PDF template or supporting documentation (such as a W-9) that Stedi requested.
-
Call the Upload Enrollment Document endpoint with the enrollment ID and task ID.
Stedi returns a pre-signed URL in the
uploadUrlproperty you can use to upload the completed PDF to the enrollment request. The URL expires after 24 hours. If it expires, call the endpoint again to get a new one.You should also save the
documentIdreturned in the response. You'll use it later to poll for the document's status and when completing the task. -
Make a
PUTrequest to theuploadUrlto upload the completed PDF to Stedi. The request must include theContent-Type: application/pdfheader. Only PDF documents are currently supported.
You must wait for the document's status to change from PENDING to UPLOADED before marking the associated task as complete. This typically takes less than 10 seconds.
You can poll the Retrieve Enrollment endpoint to check the status of the uploaded document. When the status is UPLOADED, the document has been successfully received and processed by Stedi.
Our TypeScript example shows how you might poll.
Once the document status is UPLOADED, call the Update Enrollment Task endpoint to mark the task as complete. Your payload must include a values array with one object per field. Each object should contain:
- The field's
key - A
valueobject. The object must contain adocumentproperty with thedocumentIdStedi returned when you uploaded the PDF.
Mixed field types
Manual tasks can combine TEXT and DOCUMENT fields in a single task. For example, a provider may be asked to upload PDF documentation and supply their bank account number within the same task.
To complete a task with mixed fields:
- Collect the required text values from the provider.
- Follow the DOCUMENT field workflow to upload required PDF documentation to Stedi.
- Submit all values together in the
values[]array and mark the task as complete.
API (legacy)
The following workflows are for legacy task types that will be deprecated and removed on July 20, 2026. Use manual task workflows for new integrations.
Standard task workflow
For provideInformation and followInstructions tasks that don't require a document upload, call the Update Enrollment Task endpoint to mark them complete.
The following example shows a followInstructions task on an enrollment request:
To complete this task, call the Update Enrollment Task endpoint with the task ID:
PDF upload workflow
When an enrollment requires additional documentation from the provider, Stedi adds a provideFilledPdf task to the enrollment request with instructions. Managing these tasks programmatically requires additional steps.
Follow this process to complete provideFilledPdf tasks.
When a task requires downloading a form and reuploading the completed PDF, Stedi provides the PDF for download on the enrollment request.
-
Call either the Retrieve Enrollment or List Enrollments endpoint to retrieve the enrollment request details.
-
Check the
tasks[].definition.provideFilledPdf.documentDownloadUrlproperty. -
Do one of the following:
- If
documentDownloadUrlis present, retrieve it to use in the next step. - Otherwise, check the
instructionsproperty for details about what supporting documentation (such as the provider's W-9 form) is required. Then, skip to step 4 to upload that documentation.
- If
Skip this step if uploading supporting documentation.
To retrieve the enrollment PDF template from Stedi:
-
Make an authenticated
GETrequest to thedocumentDownloadUrl. This is the API URL for the Download Enrollment Document endpoint, prefilled with the proper document ID. Stedi returns a pre-signed URL in thedownloadUrlproperty.The URL expires after 24 hours. If the URL expires before you download the PDF, call the endpoint again to get a new one.
-
Make a
GETrequest to thedownloadUrlto retrieve the PDF.
Skip this step if uploading supporting documentation.
The provider should complete the PDF template according to the instructions provided in the provideFilledPdf task and the form itself.
Upload the required PDF documentation to the enrollment request. This is either a completed enrollment PDF template or supporting documentation (such as a W-9) that Stedi requested.
-
Call the Upload Enrollment Document endpoint with the enrollment ID.
Stedi returns a pre-signed URL in the
uploadUrlproperty you can use to upload the completed PDF to the enrollment request. The URL expires after 24 hours. If it expires, call the endpoint again to get a new one.You should also save the
documentIdreturned in the response. You'll use it later to poll for the document's status and when completing the task. -
Make a
PUTrequest to theuploadUrlto upload the completed PDF to Stedi. The request must include theContent-Type: application/pdfheader.
You must wait for the document's status to change from PENDING to UPLOADED before marking the associated task as complete. This typically takes less than 10 seconds.
You can poll the Retrieve Enrollment endpoint to check the status of the uploaded document. When the status is UPLOADED, the document has been successfully received and processed by Stedi.
Our TypeScript example shows how you might poll.
Once the document status is UPLOADED, call the Update Enrollment Task endpoint to mark the provideFilledPdf task as complete.
Review and download documents
You can upload documents through tasks Stedi assigns on the enrollment request. Stedi may also upload documentation throughout the enrollment process. You can review, download, or delete these documents as needed. Documents associated with an enrollment may include:
- Completed enrollment forms
- W-9 tax forms
- Voided checks
- Other documentation that Stedi completes and submits to the payer
UI
To review, download, or delete documents associated with an enrollment request:
- Go to the Enrollments page and click the enrollment request.
- Scroll to the Documents section at the bottom of the page.
In the Documents section, click any document to view it in your web browser. You can also click ... (ellipses) to the right of the document to:
- Download the original PDF file.
- Copy a secure link to view the file, which you can share with any member of your Stedi account.
- Delete the file, if necessary.

API
You can use the following API endpoints to manage documents on an enrollment request programmatically:
- Upload Enrollment Document: Get a pre-signed URL to upload a PDF document related to a task. This endpoint requires a
taskId- you can use it for manual tasks with DOCUMENT fields or legacyprovideFilledPdftasks. - Download Enrollment Document: Get a pre-signed URL to download a specific PDF document related to an enrollment request.
- Delete Enrollment Document: Delete a specific PDF document related to an enrollment request.