v1

latestOpenAPI 3.1.02026-08-063776831.4 MB
CredentialingWorkflow

Get credentialing workflows

Retrieves a list of credentialing workflows based on filter criteria

get/credentialing-workflows

Query parameters

endAtIdstring

End at document ID, for backward cursor-based pagination

filterstring

Filter Criteria

The filter parameter must be URL encoded when sent. Filters are specified as JSON objects where each field can have one or more filter operations.

Filterable Fields

Core Workflow Fields

  • id: Workflow unique identifier (String)
  • tenantId: Tenant identifier (String)
  • tenantPractitionerId: Tenant practitioner identifier (String)
  • createdAt: Workflow creation timestamp (Timestamp)
  • updatedAt: Workflow last update timestamp (Timestamp)

Data Fields - Workflow Information

  • data.externalId: External identifier (String)
  • data.practitionerFileType: Type of practitioner file (String)
  • data.credentialingCycle: Credentialing cycle (String)
  • data.credentialedStates: Array of credentialed states (Array - eq/in only)
  • data.assignedTo: User assigned to the workflow (String)
  • data.assignedBy: User who assigned the workflow (String)

Data Fields - Status & Dates

  • data.credentialingStatus: Current workflow status (String)
  • data.psvReadyDate: PSV ready date (Timestamp)
  • data.psvCompletedDate: PSV completed date (Timestamp)
  • data.credentialingStatusLastUpdatedDate: Status last updated date (Timestamp)
  • data.previousCredentialedDate: Previous credentialing date (Date)
  • data.credentialingDueDate: Credentialing due date (Date)
  • data.nextCredentialingDate: Next credentialing date (Date)
  • data.credentialingDecisionDate: Credentialing decision date (Date)

Data Fields - Practitioner Information

  • data.practitioner.firstName: Practitioner first name (String, case-insensitive contains)
  • data.practitioner.middleName: Practitioner middle name (String)
  • data.practitioner.lastName: Practitioner last name (String, case-insensitive contains)
  • data.practitioner.npi: National Provider Identifier (String)
  • data.practitioner.caqhProviderId: CAQH Provider ID (String)
  • data.practitioner.primaryEmail: Primary email address (String)
  • data.practitioner.licensedStates: Array of licensed states (Array - eq/in only)
  • data.practitioner.practitionerTypesToCredential: Array of practitioner types to credential (Array - eq/in only)
  • data.practitioner.statesToCredential: Array of states to credential (Array - eq/in only)
  • data.practitioner.lineOfBusiness: Array of lines of business (Array - eq/in only)
  • data.practitioner.userDefinedFields.market: Array of markets (Array - eq/in only)

Supported Filter Operations

String Fields (eq, neq, in, nin, contains)

  • eq: Exact match - {"field":{"eq":"value"}}
  • neq: Not equal - {"field":{"neq":"value"}}
  • in: Match any value in array - {"field":{"in":["value1","value2"]}}
  • nin: Not match any value in array - {"field":{"nin":["value1","value2"]}}
  • contains: Substring match - {"field":{"contains":"partial"}} (case-insensitive for name fields)

Timestamp/Date Fields (eq, neq, gt, gte, lt, lte)

  • eq: Exact match - {"field":{"eq":"2023-01-01T00:00:00Z"}}
  • neq: Not equal - {"field":{"neq":"2023-01-01T00:00:00Z"}}
  • gt: Greater than - {"field":{"gt":"2023-01-01T00:00:00Z"}}
  • gte: Greater than or equal - {"field":{"gte":"2023-01-01T00:00:00Z"}}
  • lt: Less than - {"field":{"lt":"2023-01-01T00:00:00Z"}}
  • lte: Less than or equal - {"field":{"lte":"2023-01-01T00:00:00Z"}}

Array Fields (eq, in only)

  • eq: Array contains value - {"field":{"eq":"value"}}
  • in: Array contains any of these values - {"field":{"in":["value1","value2"]}}

Filter Examples

Basic Filters (before URL encoding)

// Filter by id
{"id":{"eq":"123"}}

// Filter by tenant
{"tenantId":{"eq":"tenant123"}}

// Filter by practitioner ID
{"tenantPractitionerId":{"eq":"practitioner456"}}

// Filter by credentialing status
{"data.credentialingStatus":{"eq":"PSV_READY"}}

// Filter by assigned user
{"data.assignedTo":{"eq":"user123"}}

Practitioner Filters

// Search by practitioner first name (case-insensitive)
{"data.practitioner.firstName":{"contains":"Alice"}}

// Filter by NPI (exact match)
{"data.practitioner.npi":{"eq":"1234567890"}}

// Filter by CAQH Provider ID
{"data.practitioner.caqhProviderId":{"eq":"12345678"}}

// Filter by email
{"data.practitioner.primaryEmail":{"contains":"@example.com"}}

Array Field Filters

// Filter by practitioner type to credential
{"data.practitioner.practitionerTypesToCredential":{"eq":"MD"}}

// Filter by multiple states to credential
{"data.practitioner.statesToCredential":{"in":["CA","NY","TX"]}}

// Filter by licensed states
{"data.practitioner.licensedStates":{"in":["CA","NY"]}}

// Filter by line of business
{"data.practitioner.lineOfBusiness":{"eq":"MEDICARE"}}

// Filter by multiple lines of business
{"data.practitioner.lineOfBusiness":{"in":["MEDICARE","MEDICAID"]}}

// Filter by market
{"data.practitioner.userDefinedFields.market":{"eq":"MARKET1"}}

// Filter by multiple markets
{"data.practitioner.userDefinedFields.market":{"in":["MARKET1","MARKET2"]}}

// Filter by credentialed states
{"data.credentialedStates":{"eq":"CA"}}

Date/Timestamp Filters

// Workflows created after a date
{"createdAt":{"gt":"2023-01-01T00:00:00Z"}}

// PSV ready within a date range
{"data.psvReadyDate":{"gte":"2023-01-01T00:00:00Z","lte":"2023-12-31T23:59:59Z"}}

// Workflows updated in last 7 days
{"updatedAt":{"gte":"2023-01-15T00:00:00Z"}}

Combined Filters

// Multiple conditions (AND logic)
{
  "data.practitioner.firstName":{"contains":"Alice"},
  "data.practitioner.npi":{"eq":"1234567890"},
  "data.credentialingStatus":{"eq":"PSV_READY"}
}

// Filter by status and date range
{
  "data.credentialingStatus":{"eq":"CRED_APPROVED"},
  "data.credentialingDecisionDate":{"gte":"2023-01-01","lte":"2023-12-31"}
}

// Filter by line of business and status
{
  "data.practitioner.lineOfBusiness":{"in":["MEDICARE"]},
  "data.credentialingStatus":{"eq":"PSV_READY"}
}

// Filter by market and status
{
  "data.practitioner.userDefinedFields.market":{"in":["MARKET1"]},
  "data.credentialingStatus":{"eq":"PSV_READY"}
}

cURL Examples

# Filter by id
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22id%22%3A%7B%22eq%22%3A%22123%22%7D%7D'

# Filter by practitioner firstName (case-insensitive)
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.firstName%22%3A%7B%22contains%22%3A%22Alice%22%7D%7D'

# Filter by NPI
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.npi%22%3A%7B%22eq%22%3A%221234567890%22%7D%7D'

# Filter by states to credential
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.statesToCredential%22%3A%7B%22in%22%3A%5B%22CA%22%2C%22NY%22%5D%7D%7D'

# Filter by line of business
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.lineOfBusiness%22%3A%7B%22in%22%3A%5B%22MEDICARE%22%5D%7D%7D'

# Filter by market
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.userDefinedFields.market%22%3A%7B%22in%22%3A%5B%22MARKET1%22%5D%7D%7D'

# Combined filter
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.firstName%22%3A%7B%22contains%22%3A%22Alice%22%7D%2C%22data.credentialingStatus%22%3A%7B%22eq%22%3A%22PSV_READY%22%7D%7D'

Note: Always URL encode the JSON filter string before sending the request.

orderstring

Sorting/Ordering

Sort results by specifying a field name and direction. The order parameter must be URL encoded when sent.

Sortable Fields

You can sort by any of the following fields:

  • id: Workflow unique identifier
  • tenantPractitionerId: Tenant practitioner identifier
  • createdAt: Workflow creation timestamp
  • createdBy: User who created the workflow (sortable only, not filterable)
  • updatedAt: Last update timestamp
  • updatedBy: User who last updated the workflow (sortable only, not filterable)
  • data: JSON data field (lexicographic ordering)

Sort Direction

  • ASC: Ascending order (default)
  • DESC: Descending order

Note: Sort direction is case-insensitive, but uppercase is recommended (ASC/DESC).

Sort Format

{
  "orderBy": "fieldName",
  "orderByDirection": "ASC|DESC"
}

Sort Examples

Basic Sorting (before URL encoding)

// Sort by creation date (newest first)
{"orderBy":"createdAt","orderByDirection":"DESC"}

// Sort by id (ascending)
{"orderBy":"id","orderByDirection":"ASC"}

// Sort by last update (newest first)
{"orderBy":"updatedAt","orderByDirection":"DESC"}

cURL Examples

# Sort by creation date (newest first)
curl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22createdAt%22%2C%22orderByDirection%22%3A%22DESC%22%7D'

# Sort by id (ascending)
curl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22id%22%2C%22orderByDirection%22%3A%22ASC%22%7D'

# Sort by tenant practitioner (ascending)
curl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22tenantPractitionerId%22%2C%22orderByDirection%22%3A%22ASC%22%7D'

# Combine filter and sort
curl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.credentialingStatus%22%3A%7B%22eq%22%3A%22PSV_READY%22%7D%7D&order=%7B%22orderBy%22%3A%22createdAt%22%2C%22orderByDirection%22%3A%22DESC%22%7D'

Note: Always URL encode the JSON order string before sending the request.

pageinteger

Page number (0-based), for offset-based pagination

sizeinteger

Page size

skipEnrichmentboolean

When true, skips DAL enrichment and verifiedBy user lookups

startAfterIdstring

Start after document ID, for forward cursor-based pagination

Headers

X-PII-Viewstring

Include PII in response; requires practitioner read:pii permission

tenant-idstring required

Tenant ID

Response

Successfully retrieved credentialing workflows

totalCountinteger

Total count of credentialing workflows

Example response

{
  "totalCount": 100,
  "data": [
    {
      "id": "1234",
      "tenantId": "tenant_123456",
      "tenantPractitionerId": "tp_123456",
      "certifyPractitionerId": "cp_123456",
      "data": {
        "credentialingStatus": "IN_PROGRESS",
        "credentialingDecisionDate": "2024-06-15",
        "nextCredentialingDate": "2025-06-15",
        "psvReadyDate": "2024-05-01T14:20:00Z",
        "psvCompletedDate": "2024-06-01T16:45:00Z",
        "credentialingStatusLastUpdatedDate": "2024-01-15T10:30:00Z"
      },
      "createdBy": "user_123456",
      "updatedBy": "user_123456",
      "createdAt": "2022-03-10T16:15:50Z",
      "updatedAt": "2022-03-10T16:15:50Z"
    }
  ]
}