Product overview
A set of APIs that allow providers to submit electronic ERA enrollments to EDI. This will allow electronic/systematic submission of ERA enrollment information and it supports enrollment record creation but not attachments at this time. This works the same way a DDE (Direct Data Entry) enrollment is created, but electronic instead of manually inputted.
How it works
The provider can submit ERA enrollment information via JSON to the EDI enrollment API for ERA enrollment. The submitted data is validated and processed. Provider can then retrieve the results of the ERA enrollments. The results will include records that were accepted and processed and records that were rejected. Rejected records will include a message indicating why it was rejected.
The enrollment process will match to an ORGID/PayerID/Provider IDs (NPI/TIN) to generate an association ID when a remit is received. The EDI system has the ability to match to submitter to deliver to proper delivery methods.
Best practices
Records should only be submitted once. Rejected records can be corrected and submitted again, but accepted records should not be resubmitted.
For additional review/historical review – visit the IEDI Portal to review all existing associations.  For any changes to an existing enrollment or association, you will need to submit a Salesforce case to the iEDI enrollment team.
Security
Optum uses OAuth2 to create a secure connection with our API users, which requires a bearer authorization token (apigw.optum.com/apip/auth/v2/token/ endpoint) to obtain access.
How to try an API?
Support
Technical support
For any issues, create a support case in Salesforce and should include the traceID listed below.
Any error response should include the "traceId". Consumers should include this ID when contacting technical support. The trace ID's are attached to logging and will facilitate resolving the issues.
Request access
A support case will need to be submitted through Salesforce to iEDI enrollments to request access.
Technical overview
API details
The EDI Enrollment API allows consumers to send ERA enrollment information as JSON to EDI for processing. This is an asynchronous process. The initial response indicates if the submission was accepted for processing or not. Results of the processing are retrieved later via the results path. Please review the "API reference documentation" below for more details.
Data descriptions
| Field name | Field description | 
|---|---|
| tenant-id | Tenant ID of the organization. Must be in the header of all requests. | 
| payloadId | The ID returned during submission that is later used to retrieve the results. | 
| Enrollment Records | The body of the submission request and response of the results request. Complete schema and examples are available in the API reference documentation section below. | 
Categorization of endpoints
Environments available
Staging & Production
Authentication guidance
Prior to attempting to access the EDI Enrollment API, you must ensure that you have the following:
A One Healthcare ID username/password
An EDI portal account and organization
Access Token - OAuth2 client credentials flow
One Healthcare ID
With One Healthcare ID, you can register for and access a variety of services offered by Optum and United Healthcare, including EDI
EDI portal account
An API client must have an account setup with the EDI Portal, this allows us to match records created via the api to an account so that it can be administrated via the portal if needed.
EDI organization
An EDI organization is created when a business entity is on-boarded with EDI. Each organization has an administrator who manages adding users and zero or more additional users who are provisioned to use EDI under that organization. To get access to an EDI organization, ask your administrator to send an invitation to the email address associated with your One Healthcare ID. When making API calls to EDI, each call must reference an Organization.
Example organization/account: Acme Payer EDI Services
Access token - OAuth2 client credentials flow
In order to make direct API calls to EDI, each API request must include a valid access_token. OAuth2 client credentials are associated with your One Healthcare ID. Each request to the API using OAuth2 client credentials is considered to be done by the One Healthcare ID those credentials were created for. At this time, OAuth2 Client Credentials are available to limited organizations and users only. Please contact your organization's administrator or EDI support to request OAuth2 client credentials.
Main API flow walkthrough
- ERA enrollments records are submitted to Endpoint_URL/era/enrollment-submission.
- This call will result in either a 202 or 400 Code. If the request is accepted for processing the response code 202 will be returned along with a payload-id.
 
- Results of processing are retrieved by submitting a request to Endpoint_URL/era/results/{payloadId}.
- The payload ID is the value returned during the submission request.
- If the submission is still being processed the results will return the status of processing.
- Submissions that have finished processing will receive a response including the accepted and rejected records.
 
All API endpoints require the following headers to be sent with each request. These headers identify the caller, and which EDI organization/account the request is for.
| Header name | Value | Example | 
|---|---|---|
| tenant-id | The Tenant ID of the organization | TESTWINH | 
| Authorization | The access token | Bearer xxxx | 
Response code details
| Response code | Description | 
|---|---|
| 202 | The request payload was accepted for processing and will be processed in a timely manner. | 
| 400 | In the case of submitting enrollment data, this can occur when the request data is not properly formatted JSON. | 
| 404 | In the case of retrieving the results, this indicates a record could not be found, or could not be verified as associated with the organization making the request. | 
| 500 | An Internal error occurred and the request could not be processed. Please include the "traceId" in the response when contacting support. | 
| 503 | Service unavailable. Please try again later. | 
| Release notes | 
|---|
| View our Release notes for more information on the API |