components:
schemas:
AccessDeniedExceptionResponseContent:
description: The server response for authorization failure.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
CreateProviderRequestContent:
description: Information about the provider you want to add to your account. The provider **must** have a
unique NPI from other providers in your account.
properties:
contacts:
description: "The contact information for the provider. These contacts appear as prepopulated options\
\ for contact information when creating enrollment requests for this provider in the Stedi portal. They\
\ aren't automatically added to enrollment requests.\n\nThese contacts should specify where payers should\
\ send communications about the enrollment, if needed.\n - Either `organizationName` _or_ `firstName`\
\ and `lastName` are required.\n - 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.\n - If you're submitting enrollment requests on a provider's behalf, you may want to set\
\ the phone number and 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.\n - These contacts are for convenience\
\ only. You can specify different contacts on enrollment requests as needed."
items:
$ref: '#/components/schemas/ProviderContact'
type: array
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
minLength: 5
type: string
npi:
description: 'The provider''s [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search).
This is a 10-digit number that is unique to the provider.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `npi` as long as they have different values for `taxId`.'
pattern: ^[0-9]{10}$
type: string
taxId:
description: 'The provider''s tax ID, as specified by `taxIdType`. This identifier has to be provided
without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333`
is valid.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `taxId` as long as they have different values for `npi`.'
pattern: ^\d{9}$
type: string
taxIdType:
$ref: '#/components/schemas/TaxIdType'
description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN`
- Social Security Number.
required:
- name
- npi
- taxId
- taxIdType
type: object
CreateProviderResponseContent:
description: Output containing the created provider details.
properties:
contacts:
description: 'The contact information for the provider. These contacts appear as prepopulated options
for contact information when creating enrollment requests for this provider in the Stedi portal. They
aren''t automatically added to enrollment requests.
These contacts should specify where payers should send communications about the enrollment, if needed.'
items:
$ref: '#/components/schemas/ProviderContact'
type: array
createdAt:
description: The date and time Stedi created the provider record.
format: date-time
type: string
id:
description: A unique identifier Stedi assigns to this provider.
type: string
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
minLength: 5
type: string
npi:
description: 'The provider''s [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search).
This is a 10-digit number that is unique to the provider.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `npi` as long as they have different values for `taxId`.'
pattern: ^[0-9]{10}$
type: string
taxId:
description: 'The provider''s tax ID, as specified by `taxIdType`. This identifier has to be provided
without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333`
is valid.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `taxId` as long as they have different values for `npi`.'
pattern: ^\d{9}$
type: string
taxIdType:
$ref: '#/components/schemas/TaxIdType'
description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN`
- Social Security Number.
updatedAt:
description: The date and time Stedi last updated the provider record.
format: date-time
type: string
required:
- id
- name
- npi
type: object
GatewayTimeoutExceptionResponseContent:
description: The server was acting as a gateway or proxy and did not receive a timely response from the upstream
server.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
GetProviderResponseContent:
description: Output containing the provider details.
properties:
contacts:
description: 'The contact information for the provider. These contacts appear as prepopulated options
for contact information when creating enrollment requests for this provider in the Stedi portal. They
aren''t automatically added to enrollment requests.
These contacts should specify where payers should send communications about the enrollment, if needed.'
items:
$ref: '#/components/schemas/ProviderContact'
type: array
createdAt:
description: The date and time Stedi created the provider record.
format: date-time
type: string
id:
description: A unique identifier Stedi assigns to this provider.
type: string
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
minLength: 5
type: string
npi:
description: The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search).
This is a 10-digit number that is unique to the provider.
pattern: ^[0-9]{10}$
type: string
taxId:
description: The provider's tax ID, as specified by `taxIdType`. This identifier is formatted without
any separators, such as dashes or spaces. For example 111-22-3333 is represented as `111223333`.
pattern: ^\d{9}$
type: string
taxIdType:
$ref: '#/components/schemas/TaxIdType'
description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN`
- Social Security Number.
updatedAt:
description: The date and time Stedi last updated the provider record.
format: date-time
type: string
required:
- id
- name
- npi
type: object
InternalFailureExceptionResponseContent:
description: The server response when an unexpected error occurred while processing request.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
ListProvidersResponseContent:
description: Output containing a paginated list of providers.
properties:
items:
description: Details about every provider your organization has created within Stedi.
items:
$ref: '#/components/schemas/ProviderSummary'
type: array
nextPageToken:
description: Token that you can supply in subsequent requests to retrieve the next page of results. If
not returned, there are no more results.
maxLength: 1024
minLength: 1
type: string
type: object
ProviderContact:
description: "The contact information for the provider. These contacts appear as prepopulated options for\
\ contact information when creating enrollment requests for this provider in the Stedi portal. They aren't\
\ automatically added to enrollment requests.\n\nThese contacts should specify where payers should send\
\ communications about the enrollment, if needed.\n - Either `organizationName` _or_ `firstName` and `lastName`\
\ are required.\n - 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.\n - If you're submitting\
\ enrollment requests on a provider's behalf, you may want to set the phone number and 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.\n - These contacts are for convenience only. You can specify different contacts\
\ on enrollment requests as needed."
properties:
city:
description: The contact's city. This should match exactly what the payer has on file for the provider.
minLength: 2
type: string
email:
description: The contact's email address. Set this to where you want the payer to send communications
regarding the enrollment. This can be different from the provider's email if needed.
minLength: 5
pattern: ^\S+@\S+\.\S+$
type: string
firstName:
description: The contact's first name. This should match exactly what the payer has on file for the provider.
type: string
lastName:
description: The contact's last name. This should match exactly what the payer has on file for the provider.
type: string
organizationName:
description: The contact's business name. This should match exactly what the payer has on file for the
provider.
type: string
phone:
description: The contact's phone number. Set this to where you want the payer to direct communications
regarding the enrollment. This can be different from the provider's phone number if needed.
pattern: ^(?:[\s().-]*\d){10}[\s().-]*$
type: string
state:
$ref: '#/components/schemas/UsState'
description: The contact's two-letter state abbreviation. For example, `PA`, or `MD`. This should match
exactly what the payer has on file for the provider.
streetAddress1:
description: The contact's street address, including the street number, name, and any suite or apartment
number. This should match exactly what the payer has on file for the provider.
minLength: 1
type: string
streetAddress2:
description: The contact's street address continued. This should match exactly what the payer has on file
for the provider.
type: string
zipCode:
description: The contact's five-digit ZIP code. This should match exactly what the payer has on file for
the provider.
minLength: 5
type: string
required:
- city
- email
- phone
- state
- streetAddress1
- zipCode
type: object
ProviderSummary:
description: Summary information for a provider, typically used in list operations.
properties:
id:
description: A unique identifier Stedi assigns to this provider internally.
type: string
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
type: string
npi:
description: The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search).
type: string
taxId:
description: The provider's tax ID, as specified by `taxIdType`. This identifier is formatted without
any separators, such as dashes or spaces. For example 111-22-3333 is represented as `111223333`.
type: string
taxIdType:
$ref: '#/components/schemas/TaxIdType'
description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN`
- Social Security Number.
required:
- id
- name
- npi
type: object
QuotaExceededExceptionResponseContent:
description: The server response for the usage plan quota exceeded error.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
ResourceNotFoundExceptionResponseContent:
description: The requested resource could not be found.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
ServiceUnavailableExceptionResponseContent:
description: The server cannot handle the request due to technical reasons.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
TaxIdType:
description: The type of tax identification number.
enum:
- EIN
- SSN
type: string
UnauthorizedExceptionResponseContent:
description: The server response when the authorizer failed to authenticate the caller.
properties:
code:
description: Error classification code
type: string
message:
description: Human-readable error message
type: string
required:
- message
type: object
UpdateProviderRequestContent:
description: Input for UpdateProvider.
properties:
contacts:
description: "The contact information for the provider. These contacts appear as prepopulated options\
\ for contact information when creating enrollment requests for this provider in the Stedi portal. They\
\ aren't automatically added to enrollment requests.\n\nThese contacts should specify where payers should\
\ send communications about the enrollment, if needed.\n - Either `organizationName` _or_ `firstName`\
\ and `lastName` are required.\n - 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.\n - If you're submitting enrollment requests on a provider's behalf, you may want to set\
\ the phone number and 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.\n - These contacts are for convenience\
\ only. You can specify different contacts on enrollment requests as needed."
items:
$ref: '#/components/schemas/ProviderContact'
type: array
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
minLength: 5
type: string
required:
- name
type: object
UpdateProviderResponseContent:
description: Output containing the updated provider details.
properties:
contacts:
description: 'The contact information for the provider. These contacts appear as prepopulated options
for contact information when creating enrollment requests for this provider in the Stedi portal. They
aren''t automatically added to enrollment requests.
These contacts should specify where payers should send communications about the enrollment, if needed.'
items:
$ref: '#/components/schemas/ProviderContact'
type: array
createdAt:
description: The date and time Stedi created the provider record.
format: date-time
type: string
id:
description: A unique identifier Stedi assigns to this provider.
type: string
name:
description: The provider's business name. This is typically the provider's practice name, such as `Dental
Associates, LLC`, but it can also be the provider's first and last name.
minLength: 5
type: string
npi:
description: 'The provider''s [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search).
This is a 10-digit number that is unique to the provider.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `npi` as long as they have different values for `taxId`.'
pattern: ^[0-9]{10}$
type: string
taxId:
description: 'The provider''s tax ID, as specified by `taxIdType`. This identifier has to be provided
without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333`
is valid.
Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two
provider records with the same `taxId` as long as they have different values for `npi`.'
pattern: ^\d{9}$
type: string
taxIdType:
$ref: '#/components/schemas/TaxIdType'
description: The type of tax ID. Can be either an `EIN` - Employer Identification Number, or an `SSN`
- Social Security Number.
updatedAt:
description: The date and time Stedi last updated the provider record.
format: date-time
type: string
required:
- id
- name
- npi
type: object
UsState:
description: United States state and territory codes using standard two-letter abbreviations.
enum:
- AA
- AE
- AK
- AL
- AP
- AR
- AS
- AZ
- CA
- CO
- CT
- DC
- DE
- FL
- FM
- GA
- GU
- HI
- IA
- ID
- IL
- IN
- KS
- KY
- LA
- MA
- MD
- ME
- MH
- MI
- MN
- MO
- MP
- MS
- MT
- NC
- ND
- NE
- NH
- NJ
- NM
- NV
- NY
- OH
- OK
- OR
- PA
- PR
- PW
- RI
- SC
- SD
- TN
- TX
- UT
- VT
- VA
- VI
- WA
- WV
- WI
- WY
type: string
ValidationExceptionField:
description: Describes one specific validation failure for an input member.
properties:
message:
description: A detailed description of the validation failure.
type: string
path:
description: A JSONPointer expression to the structure member whose value failed to satisfy the modeled
constraints.
type: string
required:
- message
- path
type: object
ValidationExceptionResponseContent:
description: 'A standard error for input validation failures.
This should be thrown by services when a member of the input structure
falls outside of the modeled or documented constraints.'
properties:
fieldList:
description: 'A list of specific failures encountered while validating the input.
A member can appear in this list more than once if it failed to satisfy multiple constraints.'
items:
$ref: '#/components/schemas/ValidationExceptionField'
type: array
message:
description: A summary of the validation failure.
type: string
required:
- message
type: object
securitySchemes:
httpApiKeyAuth:
description: A [Stedi API Key](https://www.stedi.com/app/settings/api-keys) for authentication.
in: header
name: Authorization
type: apiKey
info:
contact:
email: healthcare@stedi.com
license:
name: Proprietary
url: https://stedi.com
title: Stedi Healthcare Claims Claim acknowledgments Providers API
version: '2025-03-07'
openapi: 3.0.3
paths:
/providers:
get:
description: Lists providers with optional filtering and pagination.
operationId: ListProviders
parameters:
- description: The maximum number of elements to return in a page. If not specified, the default is 100.
in: query
name: pageSize
schema:
description: The maximum number of elements to return in a page. If not specified, the default is 100.
maximum: 500
minimum: 1
type: number
- description: The `nextPageToken` value from a previous response. You can use this to get the next page of
results. If not set, Stedi returns the first page of results.
in: query
name: pageToken
schema:
description: The `nextPageToken` value from a previous response. You can use this to get the next page
of results. If not set, Stedi returns the first page of results.
maxLength: 1024
minLength: 1
type: string
- description: 'Filter for providers with properties matching a query string. You can provide all or part
of a provider name, NPI, or tax ID. The search is case-insensitive and supports fuzzy matching.
For example, providing `?filter=OS` returns providers with names containing `os` (such as `Joseph`).'
in: query
name: filter
schema:
description: 'Filter for providers with properties matching a query string. You can provide all or part
of a provider name, NPI, or tax ID. The search is case-insensitive and supports fuzzy matching.
For example, providing `?filter=OS` returns providers with names containing `os` (such as `Joseph`).'
type: string
- description: Filter for providers with NPIs matching any value in this list.
explode: true
in: query
name: providerNpis
schema:
description: Filter for providers with NPIs matching any value in this list.
items:
description: The provider NPI.
type: string
type: array
style: form
- description: Filter for providers with tax IDs matching any value in this list.
explode: true
in: query
name: providerTaxIds
schema:
description: Filter for providers with tax IDs matching any value in this list.
items:
description: The provider tax ID.
type: string
type: array
style: form
responses:
'200':
content:
application/json:
examples:
ListProviders_example1:
description: ''
summary: List Providers
value:
items:
- id: 10334e76-f073-4b5d-8984-81d8e5107857
name: BDQ Dental Inc
npi: '1999999992'
taxId: '555123456'
taxIdType: EIN
- id: 10234e76-f067-4b5d-8984-81d8e5107123
name: Example Medical Associates
npi: '1999999984'
taxId: '100100111'
taxIdType: EIN
schema:
$ref: '#/components/schemas/ListProvidersResponseContent'
description: ListProviders 200 response
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationExceptionResponseContent'
description: ValidationException 400 response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedExceptionResponseContent'
description: UnauthorizedException 401 response
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDeniedExceptionResponseContent'
description: AccessDeniedException 403 response
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionResponseContent'
description: QuotaExceededException 429 response
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalFailureExceptionResponseContent'
description: InternalFailureException 500 response
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent'
description: ServiceUnavailableException 503 response
'504':
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent'
description: GatewayTimeoutException 504 response
tags:
- Providers
post:
description: Creates a new provider record. Providers must be created before they can be enrolled with payers.
operationId: CreateProvider
requestBody:
content:
application/json:
examples:
CreateProvider_example1:
description: ''
summary: Create Provider
value:
contacts:
- city: Chevy Chase
email: bob@fortdental.center
firstName: Bob
lastName: Dentist
phone: '5551232135'
state: MD
streetAddress1: 123 Some Str
zipCode: '20814'
- city: Chevy Chase
email: tom@fortdental.center
firstName: Tom
lastName: Dentist
phone: '5551232133'
state: MD
streetAddress1: 123 Some Str
zipCode: '20814'
name: BDQ Dental Inc
npi: '1999999992'
taxId: '555123456'
taxIdType: EIN
schema:
$ref: '#/components/schemas/CreateProviderRequestContent'
required: true
responses:
'200':
content:
application/json:
examples:
CreateProvider_example1:
description: ''
summary: Create Provider
value:
contacts:
- city: Chevy Chase
email: bob@fortdental.center
firstName: Bob
lastName: Dentist
organizationName: ''
phone: '5551232135'
state: MD
streetAddress1: 123 Some Str
zipCode: '20814'
- city: Chevy Chase
email: tom@fortdental.center
firstName: Tom
lastName: Dentist
organizationName: ''
phone: '5551232133'
state: MD
streetAddress1: 123 Some Str
zipCode: '20814'
createdAt: '2024-11-18T17:39:52.406Z'
id: 10334e76-f073-4b5d-8984-81d8e5107857
name: BDQ Dental Inc
npi: '1999999992'
taxId: '555123456'
taxIdType: EIN
updatedAt: '2024-11-18T17:39:52.406Z'
schema:
$ref: '#/components/schemas/CreateProviderResponseContent'
description: CreateProvider 200 response
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationExceptionResponseContent'
description: ValidationException 400 response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedExceptionResponseContent'
description: UnauthorizedException 401 response
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDeniedExceptionResponseContent'
description: AccessDeniedException 403 response
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFoundExceptionResponseContent'
description: ResourceNotFoundException 404 response
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaExceededExceptionResponseContent'
description: QuotaExceededException 429 response
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalFailureExceptionResponseContent'
description: InternalFailureException 500 response
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailableExceptionResponseContent'
description: ServiceUnavailableException 503 response
'504':
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayTimeoutExceptionResponseContent'
description: GatewayTimeoutException 504 response
tags:
- Providers
/providers/{providerId}:
delete:
description: Deletes a provider record. Providers can only be deleted if they have no associated enrollments.
This operation is idempotent.
operationId: DeleteProvider
parameters:
- description: The Stedi-assigned identifier for the provider you want to delete.
examples:
DeleteProvider_example1:
description: ''
summary: Delete Provider
value: 10334e76
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stedi/refs/heads/main/openapi/stedi-providers-api-openapi.yml