ESMD FHIR Implementation Guide
1.0.0 - esmd
ESMD FHIR Implementation Guide - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
The esMD FHIR Service Registration process uses custom esMD FHIR profile resources and esMD FHIR REST APIs that enable Health Information Handlers (HIHs) to register healthcare providers using their National Provider Identifiers (NPIs) to the esMD System. Registration enables those providers to send and receive Electronic Medical Documentation Request (eMDR) letters using the esMD System. The esMD System supports two registration methods:
Note – NPI Registration in NPPES for the FHIR API: Existing NPPES registrations will remain unchanged. Organizations may continue using "CONNECT" as the endpoint type with the HIH endpoint/OID as the endpoint. However, for new NPI registrations submitted after the July 2025 Go-Live, HIHs onboarding to the esMD FHIR API can specify "FHIR API" as the endpoint type and set the endpoint to:
https://val.cpiapigateway.cms.gov/api/esmdf/ext/v1/fhir/Practitioner/{id}
The following custom esMD FHIR profile resources and esMD FHIR REST APIs are used by the Service Registration process:
Both the Practitioner API and PractitionerBundle API support the following Action Requests for Service Registration transactions:
| Action Code | Action Request Description |
| A | Add a new provider or service |
| E | Sending the ADRs only as eMDR |
| R | Remove provider or service |
The esMD Service Registration process follows the steps that are summarized below:
The esMD FHIR Service Registration process enables HIHs to submit Service Registration requests to esMD and supports the following esMD line of business:
| Line of Business (LOB) | CTC | LOB Description |
| Service Registration | 5 | Service Registration Request |
The following diagram and related steps provide a description of the process for submitting individual provider registration requests to esMD.
The following diagram and related steps provide a description of the process for submitting bulk provider registration requests to esMD.
The esMD system applies Profile-level Validations, Custom Validations, and System Dependency Checks to the Esmd-Practitioner resource to ensure conformity, accuracy, and consistency with esMD System processing.
Profile-Level validations ensure that the Practitioner resource adheres to the Esmd-Practitioner profile standards when single provider transactions are submitted, or the Esmd-PractitionerBundle profile standard when batch bundle provider registration transactions are submitted. The esMD system enforces these profile-level checks to verify that the Practitioner resource structure and fields match the expected configuration defined by the respective profile.
Examples of profile-level validations include, but are not limited to the following:
The esMD Service Registration workflow is subject to the following system dependency checks:
Custom validations are esMD-specific checks which are applied to individual fields to ensure they maintain data integrity and accuracy. The custom validations used by the esMD System are summarized in the table that follows.
| Nr | Metadata Element | FHIR Element Name | Description | Required/Optional | Length/ Format | Validation Rule | Error Message |
| 1 | Action Requested | Esmd-Ext-ActionRequestedCode |
The "Action Requested" code is used to specify the desired action to be performed on a provider in the context of requesting to register for a service. Here are the possible actions: 1. A (Add a new provider): This action requests the addition of a new provider to the system. When this code is used, the esMD system will add the specified provider to the list of active participants. 2. E (Sending the ADRs only as eMDR): This action indicates that only the ADRs (Additional Documentation Requests) will be sent in the form of an eMDR (electronic Medical Documentation Request). The provider's data is not being changed, but the system will handle the ADRs as an eMDR. 3. R (Remove provider or service): This action requests the removal of a provider from a service. When this code is used, the Provider will be removed from the associated service. |
R |
The only value accepted for Action Codes A, E, R. Note: NPI must already be in the esMD system for sending a request with an action code 'E'. |
For a request with Action Code ‘E’ the NPI/Provider must be active and present in the esMD database and NPPES. |
The Action Code 'E' Received in the Registration Request is not allowed for NPI {0} as association with the HIH OID does not exist in esMD. Correct and resubmit. {0} = NPI |
| 2 | Start Date | Esmd-Ext-ServiceStartDate | The Start Date refers to the specific day when a Provider would like to register for a particular service. The Start Date is ‘Optional’ for any action codes (A, E or R). If provided, the date must be either a current or future date to be accepted by esMD. Past dates are not accepted. | O |
Start Date format: YYYY-MM-DD Where: YYYY = Year MM = Month DD = Day |
If Start Date is sent, it must be in valid format, Ex: YYYY-MM-DD Start Date must be either current or future date. |
Start Date should either be current or future date for action code: {0} {0} = Action code |
| 3 | End Date | Esmd-Ext-ServiceEndDate | End date is optional; it cannot be lesser than the start date. | O |
End Date format: YYYY-MM-DD Where: YYYY = Year MM = Month DD = Day |
If End Date is sent, it must be in valid format, Ex: YYYY-MM-DD End Date must be greater than the Start Date. |
End Date cannot be lesser than start date. |
| 4 | NPI | Esmd-Ext-ProviderNumber | A National Provider Identifier (NPI) is a unique 10-digit number that identifies healthcare providers for use in administrative and financial transactions. The NPI is a Health Insurance Portability and Accountability Act (HIPAA) Administrative Simplification Standard. | R |
1. Length must be 10 numeric. Example: 1234567890 |
1. NPI must be unique and valid for any of the submitted Action Codes "A", "E", "R". 2. Maximum of 10 NPIs per Practitioner Bundle. 3. Valid NPI consent Check against NPPES system for Action Code "A" (Add) or "E" (Edit), the system will ensure the NPI is active in the NPPES system. 4. The system, when performing the NPPES consent check for the received NPI, will ensure it has the right value. Ex: Correct value is 'CMS esMD eMDR' in the [useOtherDescription] field. 5. If the Action Code is "R" (Removed) or the NPI does not exist in esMD, and it is associated with a HIH OID. 6. Duplicate submission for the same HIH OID and NPI combination for Action Code "E" or "A". |
1. The NPI {0} received must be unique within the Registration Bundle Request. {0} = NPI 2. Maximum of {0} Practitioner resources can be sent in the bundle request. {0} = Count of NPIs 3. The NPI {0} received in the Registration Request for Action Code {1} is inactive or missing consent in the NPPES. {0} = NPI {1} = Action Code 4. The NPI {0} received in the Registration Request has incorrect value {1} for the NPPES consent. Correct value is 'CMS esMD eMDR' in the [useOtherDescription] field. Request provider to correct the consent and resubmit the request. {0} = NPI {1} = Value 5. The Action Code R received in the Registration Request is not allowed for NPI {0} as association with the HIH OID does not exist in esMD. {0} = NPI 6. The HIH OID {0} and NPI {1} received for Action Code {2} is already registered with the submitting HIH or another HIH. {0} = HIH OID {1} = NPI {2} = Action Code |