Certifyos Credentialing Workflows API

The credentialing-workflows API from Certifyos — 5 operation(s) for credentialing-workflows.

OpenAPI Specification

certifyos-credentialing-workflows-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CertifyOS Credentialing Workflows API
  description: ''
  contact: {}
servers:
- url: https://ng-api-production.certifyos.com
  description: Production
- url: https://ng-api-stg.certifyos.com/
  description: Staging (Test Data)
tags:
- name: credentialing-workflows
paths:
  /credentialing-workflows:
    get:
      operationId: CredentialingWorkflowsController_findAll
      summary: List of credentialing workflows
      description: Returns a paginated list of credentialing workflows for the organization.
      parameters:
      - name: organization-id
        in: header
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The starting index for pagination, specifying how many records to skip.
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        description: The maximum number of records to retrieve in a single request.
        schema:
          default: 10
          type: number
      - name: providerNpi
        required: false
        in: query
        description: Filter by provider NPI.
        schema:
          type: string
      - name: providerFirstName
        required: false
        in: query
        description: Filter by provider first name.
        schema:
          type: string
      - name: providerLastName
        required: false
        in: query
        description: Filter by provider last name.
        schema:
          type: string
      - name: providerType
        required: false
        in: query
        description: Filter by provider type.
        schema:
          type: string
      - name: providerFileType
        required: false
        in: query
        description: Filter by provider file type.
        schema:
          type: string
      - name: providerState
        required: false
        in: query
        description: Filter by a single provider state.
        schema:
          type: string
      - name: providerStates
        required: false
        in: query
        description: Filter by multiple provider states.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      - name: providerAssignedStates
        required: false
        in: query
        description: Filter by provider assigned states.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      - name: name
        required: false
        in: query
        description: Filter by workflow or provider name.
        schema:
          type: string
      - name: onStep
        required: false
        in: query
        description: Filter by current workflow step (e.g. PSV_READY, IN_PROGRESS).
        schema:
          type: string
      - name: outreachReasons
        required: false
        in: query
        description: Filter by outreach reasons.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      - name: createdAtStart
        required: false
        in: query
        description: Filter workflows created on or after this date (ISO 8601).
        schema:
          format: date-time
          type: string
      - name: createdAtEnd
        required: false
        in: query
        description: Filter workflows created on or before this date (ISO 8601).
        schema:
          format: date-time
          type: string
      - name: nextCredentialingStart
        required: false
        in: query
        description: Filter by next credentialing start date (on or after).
        schema:
          format: date-time
          type: string
      - name: nextCredentialingEnd
        required: false
        in: query
        description: Filter by next credentialing end date (on or before).
        schema:
          format: date-time
          type: string
      - name: credentialingCycle
        required: false
        in: query
        description: Filter by credentialing cycle.
        schema:
          enum:
          - Initial
          - Recredentialing
          type: string
      - name: completedAtStart
        required: false
        in: query
        description: Filter workflows completed on or after this date.
        schema:
          format: date-time
          type: string
      - name: completedAtEnd
        required: false
        in: query
        description: Filter workflows completed on or before this date.
        schema:
          format: date-time
          type: string
      - name: credentialingStatusUpdatedAtStart
        required: false
        in: query
        description: Filter by credentialing status updated at (start of range).
        schema:
          format: date-time
          type: string
      - name: credentialingStatusUpdatedAtEnd
        required: false
        in: query
        description: Filter by credentialing status updated at (end of range).
        schema:
          format: date-time
          type: string
      - name: psvCompleteDateStart
        required: false
        in: query
        description: Filter by PSV complete date (start of range).
        schema:
          format: date-time
          type: string
      - name: workflowIds
        required: false
        in: query
        description: Filter by specific workflow IDs.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      - name: assignedTo
        required: false
        in: query
        description: Filter by user ID the workflow is assigned to.
        schema:
          type: string
      - name: includeTerminatedProviders
        required: false
        in: query
        description: Include workflows for terminated providers.
        schema:
          default: false
          type: boolean
      - name: providerExternalId
        required: false
        in: query
        description: Filter by provider external ID.
        schema:
          type: string
      - name: locationType
        required: false
        in: query
        description: Filter by organization entity location type.
        schema:
          enum:
          - primaryCare
          - specialtyCare
          - behavioralHealth
          - urgentCare
          - surgicalServices
          - rehabilitationServices
          - laboratoryServices
          - imagingServices
          - longTermCare
          - hospiceOrPalliativeCare
          - homeHealthServices
          - others
          type: string
      - name: orgEntityIds
        required: false
        in: query
        description: Filter by organization entity IDs.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      - name: providerOrgEntityIds
        required: false
        in: query
        description: Filter by provider organization entity IDs.
        schema:
          type: array
          items:
            type: array
            items:
              type: a
      responses:
        '200':
          description: Paginated list of credentialing workflows.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCredentialingWorkflowsResponseDto'
        '400':
          description: Bad request. Missing or invalid `organization-id` header, or invalid query parameters.
        '401':
          description: Unauthorized if authorization token is not provided or invalid.
        '403':
          description: Forbidden if user access is not right.
      tags:
      - credentialing-workflows
      security:
      - BearerAuth: []
  /credentialing-workflows/{id}/revert-status:
    patch:
      operationId: CredentialingWorkflowsController_revertStatus
      parameters:
      - name: organization-id
        in: header
        schema:
          type: string
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevertStatusDto'
      responses:
        '200':
          description: The status has been successfully reverted.
        '401':
          description: Unauthorized if authorization token is not provided or invalid.
        '403':
          description: Forbidden if user access is not right.
        '404':
          description: Resource not found.
      tags:
      - credentialing-workflows
      security:
      - BearerAuth: []
  /credentialing-workflows/{id}/notes:
    post:
      operationId: CredentialingWorkflowsController_createCredentialingNote
      summary: Create Credentialing Note
      description: "\n      Creates a new note associated with the specified credentialing workflow.\n\n      ### Functionality\n      - Adds a user-generated note to a credentialing workflow.\n      - Useful for internal communication, tracking decisions, or annotating the process.\n      - The note will be associated with the given workflow ID.\n"
      parameters:
      - name: organization-id
        in: header
        schema:
          type: string
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNoteDto'
      responses:
        '201':
          description: Note has been successfully created.
        '400':
          description: Bad request. Invalid input data.
        '401':
          description: Unauthorized if authorization token is not provided or invalid.
        '403':
          description: Forbidden if user access is not right.
        '404':
          description: Workflow not found for given ID.
      tags:
      - credentialing-workflows
      security:
      - BearerAuth: []
  /credentialing-workflows/{id}/notes/{noteId}:
    patch:
      operationId: CredentialingWorkflowsController_updateCredentialingNote
      summary: Update Credentialing Note
      description: '

        Updates an existing note associated with a credentialing workflow.

        '
      parameters:
      - name: organization-id
        in: header
        schema:
          type: string
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: noteId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNoteDto'
      responses:
        '200':
          description: Note has been successfully updated.
        '400':
          description: Bad request. Invalid input data.
        '401':
          description: Unauthorized if authorization token is not provided or invalid.
        '403':
          description: Forbidden if user access is not right.
        '404':
          description: Workflow or note not found.
      tags:
      - credentialing-workflows
      security:
      - BearerAuth: []
  /credentialing-workflows/{id}/populate-template-fields:
    get:
      operationId: CredentialingWorkflowsController_populateTemplateFields
      summary: Populate template fields for credentialing workflow
      description: Retrieves and populates template fields for the specified credentialing workflow. Useful for generating documents, emails, or other communications that require workflow-specific data to be inserted into templates.
      parameters:
      - name: organization-id
        in: header
        schema:
          type: string
      - name: id
        required: true
        in: path
        description: The unique identifier of the credentialing workflow for which to populate template fields.
        schema:
          type: string
      - name: reasons
        required: true
        in: query
        description: A comma-separated list of reasons to be included in the template fields (e.g., "reason1,reason2"). These reasons should already be present in the organization settings under "outreach" to be used here.
        schema:
          type: string
      responses:
        '200':
          description: Successfully populated template fields
          content:
            application/json:
              schema:
                example:
                  workflowId: abc123
                  providerName: Dr. Jane Doe
                  organizationName: HealthCare Org
                  reasons:
                  - Missing License
                  - Incomplete Application
                  otherField1: value1
                  otherField2: value2
        '400':
          description: Invalid input parameters.
        '401':
          description: Authorization token is missing or invalid.
        '403':
          description: User does not have permission to access this resource.
        '404':
          description: The specified credentialing workflow does not exist.
      tags:
      - credentialing-workflows
      security:
      - BearerAuth: []
components:
  schemas:
    PaginatedCredentialingWorkflowsResponseDto:
      type: object
      properties:
        data:
          description: List of credentialing workflows for the organization, with optional provider data attached.
          type: array
          items:
            $ref: '#/components/schemas/CredentialingWorkflowListItemDto'
        count:
          type: number
          description: Total number of credentialing workflows matching the filter (for pagination).
          example: 42
      required:
      - data
      - count
    CredentialingWorkflowAssignmentDto:
      type: object
      properties:
        assignedToFirstName:
          type: string
        assignedToLastName:
          type: string
        assignedToId:
          type: string
        assignedByFirstName:
          type: string
        assignedByLastName:
          type: string
        assignedById:
          type: string
        assignedOn:
          type:
          - string
          - 'null'
          description: ISO date string or null when unassigned.
        lastActivity:
          type:
          - string
          - 'null'
          description: ISO date string or null.
    CredentialingTimelineAggregateDto:
      type: object
      properties:
        newestNextCredentialingDate:
          type: object
          description: Newest next credentialing date, or null.
        oldestLastCredentialedDate:
          type: object
          description: Oldest last credentialed date, or null.
        oldestNextCredentialingDate:
          type: object
          description: Oldest next credentialing date, or null.
        newestLastCredentialedDate:
          type: object
          description: Newest last credentialed date, or null.
        credentialingStatuses:
          description: List of credentialing statuses from timelines.
          items:
            type: array
          type: array
    RevertStatusDto:
      type: object
      properties:
        reason:
          type: string
      required:
      - reason
    CreateNoteDto:
      type: object
      properties:
        message:
          type: string
      required:
      - message
    CredentialingWorkflowOnStepDto:
      type: object
      properties:
        title:
          type: string
          description: Step title
      required:
      - title
    AttachedProviderSummaryDto:
      type: object
      properties:
        id:
          type: string
        organizationId:
          type: string
        providerId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        npi:
          type: string
        providerType:
          type: string
        credentialingStatus:
          type: string
        status:
          type: string
        credentialingTimelineAggregate:
          $ref: '#/components/schemas/CredentialingTimelineAggregateDto'
        credentialingWorkflowTimeline:
          $ref: '#/components/schemas/CredentialingWorkflowTimelineSummaryDto'
    CredentialingWorkflowListItemDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        organizationId:
          type: string
        providerId:
          type: string
        providerNpi:
          type: string
        providerFirstName:
          type: string
        providerLastName:
          type: string
        providerType:
          type: string
        providerFileType:
          type: string
        providerStatus:
          type: string
        providerStates:
          type: array
          items:
            type: string
        providerAssignedStates:
          type: array
          items:
            type: string
        providerExternalId:
          type: string
        onStep:
          $ref: '#/components/schemas/CredentialingWorkflowOnStepDto'
        assignment:
          $ref: '#/components/schemas/CredentialingWorkflowAssignmentDto'
        isCompleted:
          type: boolean
        completedAt:
          type: object
        credentialingStatusUpdatedAt:
          type: object
          description: ISO date string or Firestore Timestamp object { _seconds, _nanoseconds }.
        credentialingCycle:
          type: string
        orgEntity:
          $ref: '#/components/schemas/CredentialingWorkflowOrgEntityDto'
        providerOrgEntities:
          type: array
          items:
            type: string
        createdAt:
          type: object
          description: ISO date string or Firestore Timestamp object { _seconds, _nanoseconds }.
        createdBy:
          type: string
        createdByName:
          type:
          - string
          - 'null'
        normalizedDocumentId:
          type: string
        updatedBy:
          type: string
        updatedAt:
          type: object
          description: ISO date string or Firestore Timestamp object { _seconds, _nanoseconds }.
        credentialingWorkflowTimeline:
          $ref: '#/components/schemas/CredentialingWorkflowTimelineSummaryDto'
        provider:
          description: Attached provider object when included (includes credentialingTimelineAggregate and other provider details).
          allOf:
          - $ref: '#/components/schemas/AttachedProviderSummaryDto'
        elapsedTime:
          type: number
          description: Elapsed time in milliseconds for the workflow.
        outreachReasons:
          type: array
          items:
            type: string
        version:
          type: number
        lastOutreachDate:
          type: string
        outreachAttempts:
          type: number
        daysToCompletion:
          type: number
        clientSlaDays:
          type: number
        psvGenerated:
          type: boolean
        psvFileSignedUrl:
          type: string
        psvFileGenerationErrors:
          type: array
          items:
            type: string
    CredentialingWorkflowOrgEntityDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    UpdateNoteDto:
      type: object
      properties:
        message:
          type: string
    CredentialingWorkflowTimelineSummaryDto:
      type: object
      properties:
        credentialingStatus:
          type: string
        createdBy:
          type: string
        createdByName:
          type:
          - string
          - 'null'
        credentialingDecisionDate:
          type: object
        medicalDirectorId:
          type:
          - string
          - 'null'
        psvCompleteDate:
          type: object
        verifierId:
          type: string
        updatedBy:
          type: string
        attestationDate:
          type: object
        updatedByName:
          type:
          - string
          - 'null'
        medicalDirectorName:
          type:
          - string
          - 'null'
        nextCredentialingDate:
          type: object
        initialCredentialingDate:
          type: object
        lastCredentialedDate:
          type: object
        receivedForCredentialingDate:
          type: object
        updatedAt:
          type: object
  securitySchemes:
    BearerAuth:
      scheme: bearer
      bearerFormat: JWT
      type: http