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 Practitioner API facilitates secure management of practitioner data within the esMD system. This API enables HIHs to submit, update, and manage practitioner details using FHIR-compliant JSON payloads.
The Practitioner API supports the single provider registration method where a single provider is registered using one request.
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}
/api/esmdf/ext/v1/fhir/Practitioner/{id}PUThttps://val.cpiapigateway.cms.gov/api/esmdf/ext/v1/fhir/Practitioner/{id}https://cpiapigateway.cms.gov/api/esmdf/ext/v1/fhir/Practitioner/{id}| Header | Description | Required | Data Type | Comments |
| Authorization | Authentication token from Auth API | Yes | String | Example: Bearer {token} |
| Content-Type | Content-Type must be application/fhir+json | Yes | String | application/fhir+json |
| Accept | Accept must be application/fhir+json | Yes | String | application/fhir+json |
PUT /api/esmdf/ext/v1/fhir/Practitioner/{id} HTTP/1.1
Host: dev.cpiapigateway.cms.gov
Authorization: Bearer {token}
Content-Type: application/fhir+json
Accept: application/fhir+json
{
"resourceType": "Practitioner",
"id": "PRACT123",
"meta": {
"profile": [
"https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Practitioner"
],
"security": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-Confidentiality",
"code": "V",
"display": "very restricted"
}
]
},
"name": [
{
"family": "Gaven",
"given": [
"Radems"
],
"prefix": [
"Dr"
],
"suffix": [
"Ph.D"
]
}
],
"telecom": [
{
"system": "phone",
"value": "551-333-6141",
"use": "work"
}
],
"address": [
{
"use": "work",
"line": [
"1003 MILLERS DR"
],
"city": "ELLICOTT CITY",
"state": "MD",
"postalCode": "21043"
}
],
"gender": "female",
"active": true,
"extension": [
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-NPI",
"valueString": "1700962487"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ProviderTaxId",
"valueString": "101-56-55"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ActionRequestedCode",
"valueCode": "A"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceCode",
"valueCode": "EEP"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceStartDate",
"valueDate": "2025-10-01"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceEndDate",
"valueDate": "2026-12-30"
}
]
}
| Type | Code | Status | Resolution |
| Success | 200 | OK | Request processed successfully. No action needed. |
| Success | 201 | Created | Resource created successfully. No action needed. |
| Error | 400 | Bad Request | Missing or invalid headers or parameters. Check request headers or parameters and resubmit. |
| Error | 401 | Unauthorized | Invalid client ID or client secret. Correct the details and resubmit. |
| Error | 403 | Forbidden | Insufficient permissions or server configuration issues. Contact esMD Support. |
| Error | 404 | Not Found | Invalid URL. Correct the endpoint URL and resubmit. |
| Error | 412 | Precondition Failed | Precondition failed. Check the conditions and resubmit. |
| Error | 422 | Unprocessable Entity | Metadata failure. Update metadata and resubmit. |
| Error | 500 | Internal Server Error | Unexpected server error. Contact esMD Support. |
| Error | 502 | Bad Gateway | Contact esMD Support. |
| Error | 503 | Service Unavailable | Contact esMD Support. |
{
"resourceType": "Practitioner",
"id": "PRACT123",
"identifier": {
"system": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-TransactionId",
"value": "NXG0001235991EC"
},
"meta": {
"versionId": "4554",
"lastUpdated": "2025-05-01T14:39:12.151-04:00",
"source": "#VX69I8RmIuawJR5b",
"profile": [
"https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Practitioner"
],
"security": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-Confidentiality",
"code": "V",
"display": "very restricted"
}
]
},
"name": [
{
"family": "Gaven",
"given": [
"Radems"
],
"prefix": [
"Dr"
],
"suffix": [
"Ph.D"
]
}
],
"telecom": [
{
"system": "phone",
"value": "551-333-6141",
"use": "work"
}
],
"address": [
{
"use": "work",
"line": [
"1003 MILLERS DR"
],
"city": "ELLICOTT CITY",
"state": "MD",
"postalCode": "21043"
}
],
"gender": "female",
"active": true,
"extension": [
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-NPI",
"valueString": "1700962487"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ProviderTaxId",
"valueString": "101-56-55"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ActionRequestedCode",
"valueCode": "A"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceCode",
"valueCode": "EEP"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceStartDate",
"valueDate": "2025-10-01"
},
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-ServiceEndDate",
"valueDate": "2026-12-30"
}
]
}
Example: Duplicate NPI-HIH Combination
{
"resourceType": "OperationOutcome",
"meta": {
"profile": [
"https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-BundleSubmissionResponse"
]
},
"extension": [
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-TransactionId",
"valueString": "NWQ0007230899EC"
}
],
"issue": [
{
"severity": "error",
"code": "Processing",
"details": {
"coding": [
{
"system": "https://terminology.esmduat.cms.gov:8099/fhir/CodeSystem/Esmd-CS-ErrorOrWarningCodes",
"code": "COMBINATION_NPI_HIH",
"display": "The HIH OID urn:oid:123.456.657.126 and NPI 1538112131 received for Action Code A is already registered with the submitting HIH or other HIH."
}
]
}
}
]
}
Example: Constraint Violation
{
"resourceType": "OperationOutcome",
"meta": {
"profile": [
"https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-BundleSubmissionResponse"
]
},
"extension": [
{
"url": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Ext-TransactionId",
"valueString": "DLU0007230900EC"
}
],
"issue": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line",
"valueInteger": 1
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col",
"valueInteger": 476
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id",
"valueString": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Practitioner#esmd-npi-1"
}
],
"severity": "error",
"code": "processing",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/java-core-messageId",
"code": "https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Practitioner#esmd-npi-1"
}
]
},
"diagnostics": "Constraint failed: esmd-npi-1: 'NPI should be 10 numeric' (defined in https://terminology.esmduat.cms.gov:8099/fhir/StructureDefinition/Esmd-Practitioner)",
"location": [
"Practitioner.extension[0].value.ofType(string)",
"Line[1] Col[476]"
]
},
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line",
"valueInteger": 1
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col",
"valueInteger": 943
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id",
"valueString": "TERMINOLOGY_TX_HINT"
}
],
"severity": #information,
"code": "processing",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/java-core-messageId",
"code": "TERMINOLOGY_TX_HINT"
}
]
},
"diagnostics": "Code validation occurred using a ValueSet expansion that was pre-calculated at 2024-12-19T21:42:50.611-05:00 (70 days ago)",
"location": [
"Practitioner.extension[3].value.ofType(code)",
"Line[1] Col[943]"
]
},
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line",
"valueInteger": 1
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col",
"valueInteger": 1090
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-message-id",
"valueString": "TERMINOLOGY_TX_HINT"
}
],
"severity": #information,
"code": "processing",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/java-core-messageId",
"code": "TERMINOLOGY_TX_HINT"
}
]
},
"diagnostics": "Code validation occurred using a ValueSet expansion that was pre-calculated at 2024-12-19T21:42:50.664-05:00 (70 days ago)",
"location": [
"Practitioner.extension[4].value.ofType(code)",
"Line[1] Col[1090]"
]
},
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line",
"valueInteger": 1
},
{
"url": "http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col",
"valueInteger": 1619
}
],
"severity": "warning",
"code": "processing",
"diagnostics": "Constraint failed: dom-6: 'A resource should have narrative for robust management' (defined in http://hl7.org/fhir/StructureDefinition/DomainResource) (Best Practice Recommendation)",
"location": [
"Practitioner",
"Line[1] Col[1619]"
]
}
]
}