Create Enrollment
Creates a new transaction enrollment request. Transaction enrollment registers a provider to exchange specific transaction types with a payer.
/enrollments
This is a beta endpoint. We may make backwards incompatible changes.
This endpoint allows you to submit a transaction enrollment request for a specific provider. You must create one enrollment request for each transaction type. For example, you would create three separate requests to enroll a provider for 837P claims (professional), 270 real-time eligibility checks, and 835 ERAs (claim payments).
- Add the provider's details through either the Providers page or the Create Provider endpoint.
- Call this endpoint to create the enrollment request. Set the
status
property toDRAFT
for test enrollments. Set thestatus
property toSUBMITTED
when you're ready for Stedi to begin processing the request. - The endpoint returns summary information about the enrollment request.
Once the status is set to SUBMITTED
, Stedi begins processing the enrollment request. You can track its progress through the Stedi portal or the API.
Contacts
You must add a contact to an enrollment request. This is where the payer will send communications about the enrollment, if needed.
- The provider's name and address should match exactly what the payer has on file. Some payers reject enrollment requests with addresses that don't match their records.
- However, you may want to set the phone number or email to your own contact details. Do this when you want the payer to contact you about the enrollment instead of the provider directly.
A Stedi API Key for authentication.
Body
The type of transactions included in the enrollment.
Whether 270 eligibility checks are included in the enrollment.
Whether 276 claim status requests are included in the enrollment.
Whether 837P professional claims are included in the enrollment.
Whether 837I institutional claims are included in the enrollment.
Whether 837D dental claims are included in the enrollment.
Whether 835 Electronic Remittance Advice (ERAs) are included in the enrollment.
Whether solicited claim attachments are included in the enrollment.
Whether unsolicited claim attachments are included in the enrollment.
The contact information for the provider. This is where the payer will send communications about the enrollment, if needed.
- The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records.
- 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.
The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status.
This email address can be different from the primaryContact.email
where the payer sends communications about the enrollment.
- Pattern:
^\S+@\S+\.\S+$
- Minimum length:
5
The status of the enrollment. You can submit enrollments with either DRAFT
or SUBMITTED
status - the default is DRAFT
if not included.
Set this to SUBMITTED
when you're ready for Stedi to begin processing the enrollment. Once an enrollment is SUBMITTED
, only Stedi can set or update its status.
DRAFT
- You are still editing the record and it has not been submitted to Stedi.SUBMITTED
- You have successfully submitted the request and it is in Stedi's queue for review. Stedi won't process enrollments until they are submitted.PROVISIONING
- Stedi has begun the process of completing the enrollment with the payer.LIVE
- The enrollment process is complete, and the specified provider can begin exchanging the listed transaction types with the payer.REJECTED
- The payer rejected the enrollment. Common reasons for rejection include incorrect details in the request and that the provider is not credentialed with the payer. Customer support will contact you with reasons for rejection and next steps.CANCELED
- The enrollment has been terminated per customer or provider request.
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
The source of this enrollment.
API
UI
IMPORT
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.
May contain extra required steps for processing that are specific to the payer. For example, perhaps the provider needs to log into an online portal and enter additional information before the enrollment can continue. Contact Stedi customer support with questions.
Internal notes about the enrollment. Only Stedi can read, set, or update this property.
This property is required for payers that require a Provider Transaction Access Number (PTAN).
The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter.
- Pattern:
^[a-zA-Z0-9]+$
- Required string length:
5 - 10
Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition.
Information about the provider enrolling with the payer. You must use the Create Provider endpoint to add the provider to Stedi before you can enroll them with one or more payers.
Information about the payer the provider is enrolling with.
Response
CreateEnrollment 200 response
The Stedi-assigned identifier for the enrollment request.
The contact information for the provider. This is where the payer will send communications about the enrollment, if needed.
- The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records.
- 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.
The date and time when the enrollment was created within Stedi.
- Format:
date-time
The date and time when the enrollment was updated.
- Format:
date-time
The date and time when the enrollment was submitted. If the enrollment is in draft status, submittedAt
is not present. When the enrollment transitions from draft to submitted, submittedAt
will be updated to the submission time. If the enrollment was created and submitted immediately, submittedAt
will be equal or close to createdAt
.
- Format:
date-time
The date and time when the enrollment status was last updated. This timestamp is used to track enrollment processing durations and enables filtering to identify recently changed enrollments. It automatically updates whenever an enrollment's status changes but remains unchanged during other updates.
- Format:
date-time
The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future.
Documents associated with this enrollment, excluding deleted documents.
Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition.
The type of transactions included in the enrollment.
Whether 270 eligibility checks are included in the enrollment.
Whether 276 claim status requests are included in the enrollment.
Whether 837P professional claims are included in the enrollment.
Whether 837I institutional claims are included in the enrollment.
Whether 837D dental claims are included in the enrollment.
Whether 835 Electronic Remittance Advice (ERAs) are included in the enrollment.
Whether solicited claim attachments are included in the enrollment.
Whether unsolicited claim attachments are included in the enrollment.
The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status.
This email address can be different from the primaryContact.email
where the payer sends communications about the enrollment.
- Pattern:
^\S+@\S+\.\S+$
- Minimum length:
5
The status of the enrollment. You can submit enrollments with either DRAFT
or SUBMITTED
status - the default is DRAFT
if not included.
Set this to SUBMITTED
when you're ready for Stedi to begin processing the enrollment. Once an enrollment is SUBMITTED
, only Stedi can set or update its status.
DRAFT
- You are still editing the record and it has not been submitted to Stedi.SUBMITTED
- You have successfully submitted the request and it is in Stedi's queue for review. Stedi won't process enrollments until they are submitted.PROVISIONING
- Stedi has begun the process of completing the enrollment with the payer.LIVE
- The enrollment process is complete, and the specified provider can begin exchanging the listed transaction types with the payer.REJECTED
- The payer rejected the enrollment. Common reasons for rejection include incorrect details in the request and that the provider is not credentialed with the payer. Customer support will contact you with reasons for rejection and next steps.CANCELED
- The enrollment has been terminated per customer or provider request.
DRAFT
SUBMITTED
PROVISIONING
LIVE
REJECTED
The source of this enrollment.
API
UI
IMPORT
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.
May contain extra required steps for processing that are specific to the payer. For example, perhaps the provider needs to log into an online portal and enter additional information before the enrollment can continue. Contact Stedi customer support with questions.
Internal notes about the enrollment. Only Stedi can read, set, or update this property.
This property is required for payers that require a Provider Transaction Access Number (PTAN).
The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter.
- Pattern:
^[a-zA-Z0-9]+$
- Required string length:
5 - 10
Information about the provider enrolling with the payer.
Information about the payer the provider is enrolling with.
curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/enrollments" \ --header "Authorization: <api_key>" \ --header "Content-Type: application/json" \ --data '{ "transactions": { "claimPayment": { "enroll": true } }, "primaryContact": { "firstName": "John", "lastName": "Doe", "email": "test@example.com", "phone": "555-123-34354", "streetAddress1": "123 Some Str.", "city": "A City", "state": "MD", "zipCode": "20814" }, "userEmail": "test@example.com", "payer": { "idOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "source": "API", "status": "SUBMITTED" }'
const body = JSON.stringify({ "transactions": { "claimPayment": { "enroll": true } }, "primaryContact": { "firstName": "John", "lastName": "Doe", "email": "test@example.com", "phone": "555-123-34354", "streetAddress1": "123 Some Str.", "city": "A City", "state": "MD", "zipCode": "20814" }, "userEmail": "test@example.com", "payer": { "idOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "source": "API", "status": "SUBMITTED"})fetch("https://enrollments.us.stedi.com/2024-09-01/enrollments", { headers: { "Authorization": "<api_key>" }, body})
package mainimport ( "fmt" "net/http" "io/ioutil" "strings")func main() { url := "https://enrollments.us.stedi.com/2024-09-01/enrollments" body := strings.NewReader(`{ "transactions": { "claimPayment": { "enroll": true } }, "primaryContact": { "firstName": "John", "lastName": "Doe", "email": "test@example.com", "phone": "555-123-34354", "streetAddress1": "123 Some Str.", "city": "A City", "state": "MD", "zipCode": "20814" }, "userEmail": "test@example.com", "payer": { "idOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "source": "API", "status": "SUBMITTED" }`) req, _ := http.NewRequest("POST", url, body) req.Header.Add("Authorization", "<api_key>") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}
import requestsurl = "https://enrollments.us.stedi.com/2024-09-01/enrollments"body = { "transactions": { "claimPayment": { "enroll": true } }, "primaryContact": { "firstName": "John", "lastName": "Doe", "email": "test@example.com", "phone": "555-123-34354", "streetAddress1": "123 Some Str.", "city": "A City", "state": "MD", "zipCode": "20814" }, "userEmail": "test@example.com", "payer": { "idOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "source": "API", "status": "SUBMITTED"}response = requests.request("POST", url, json = body, headers = { "Authorization": "<api_key>", "Content-Type": "application/json"})print(response.text)
import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.http.HttpResponse.BodyHandlers;import java.time.Duration;import java.net.http.HttpRequest.BodyPublishers;var body = BodyPublishers.ofString("""{ "transactions": { "claimPayment": { "enroll": true } }, "primaryContact": { "firstName": "John", "lastName": "Doe", "email": "test@example.com", "phone": "555-123-34354", "streetAddress1": "123 Some Str.", "city": "A City", "state": "MD", "zipCode": "20814" }, "userEmail": "test@example.com", "payer": { "idOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "source": "API", "status": "SUBMITTED"}""");HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://enrollments.us.stedi.com/2024-09-01/enrollments")) .header("Content-Type", "application/json") .header("Authorization", "<api_key>") .POST(body) .build();try { HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Response body: " + response.body());} catch (Exception e) { e.printStackTrace();}
{
"message": "string",
"fieldList": [
{
"path": "string",
"message": "string"
}
]
}
{
"message": "string",
"code": "string"
}
{
"message": "string",
"code": "string"
}
{
"message": "string",
"code": "string"
}
{
"message": "string",
"code": "string"
}