---
title: "Create facility credentialing workflows for multiple facilities (async)"
method: POST
path: "/facility-credentialing-workflows/bulk-create"
tags: ["FacilityCredentialingWorkflow"]
---

# Create facility credentialing workflows for multiple facilities (async)

`POST /facility-credentialing-workflows/bulk-create`

Asynchronously creates facility credentialing workflows for multiple facilities. The request is accepted and processing begins immediately in the background. Each workflow is processed independently with automatic facility data hydration. Results are logged but not returned in the response.

## Headers

- `tenant-id` string, required

## Request body

- BulkCreateFacilityCredentialingWorkflowRequest — Request to create credentialing workflows for multiple facilities
  - `data` FacilityCredentialingWorkflowSchema — Represents the facility credentialing workflow data stored in the data JSON field.
    - `facility` FacilitySchema, required — Schema for CertifyOS Facility data.
      - `dba` string — Doing Business As name.
      - `name` string — The legal name of the facility.
      - `primaryEmail` string, email — Primary contact email for the facility.
      - `npi` string — National Provider Identifier.
      - `tin` string — Taxpayer Identification Number.
      - `externalId` string — An external identifier for the facility.
      - `facilityType` string — The type of the facility.
      - `deceasedDate` string, date — Date of decease, if applicable.
      - `lastCredentialingDate` string, date, nullable — Date of the last credentialing.
      - `nextCredentialingDate` string, date, nullable — Date of the next credentialing due.
      - `initialCredentialingDate` string, date, nullable — Date of the initial credentialing.
      - `lineOfBusiness` string[] — The line of business associated with the facility.
      - `attestationDate` string, date — The date of attestation.
      - `userDefinedFields` object — User Defined Fields for the facility.
      - `delegationStatus` 'Delegated' | 'Direct' — The delegation status of the facility.
      - `businessPurpose` object
        - `isForCredentialing` object — States if facility is enabled for credentialing.
          - `value` boolean — States if facility is enabled for credentialing.
          - `reason` string — The reason for the credentialing status.
        - `isForMonitoring` object — States if facility is enabled for monitoring.
          - `value` boolean — States if facility is enabled for monitoring.
          - `reason` string — The reason for the monitoring status.
      - `emails` object[]
        - `email` string, email
        - `emailType` string
        - `source` string — The source of the email.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
      - `phoneNumbers` object[]
        - `phoneNumber` string, phone
        - `type` string
        - `source` string — The source of the phone number.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
      - `addresses` object[] — A list of addresses associated with the facility.
        - `address1` string
        - `address2` string
        - `city` string
        - `state` string
        - `country` string
        - `zipcode` string
        - `source` string — The source of the address.
        - `type` string — The type of address.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `isPrimary` boolean — States if the address is the primary address for the facility.
      - `licenses` object[]
        - `type` string
        - `expirationDate` string, date
        - `issueDate` string, date
        - `licenseNumber` string
        - `state` string
        - `licenseType` string
        - `licenseStatus` string
        - `licenseSource` string
        - `reportDate` string, date
        - `licenseNumberVariations` string
        - `flaggedDate` string, date — The date the license was flagged.
        - `dataSource` string — The data source of the license.
        - `url` string — The URL of the license.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the license.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the license was verified.
        - `verifiedBy` string — The user who verified the license.
      - `npdbReports` object[]
        - `reportDate` string, date
        - `processDate` string, date
        - `verifiedBy` string
        - `data` object
        - `verifiedDate` string, date-time
        - `typeOfAction` string
        - `createdDate` string, date
        - `deceased` string
        - `paymentAmount` string
        - `paymentDate` string, date
        - `patientAge` string
        - `patientGender` string
        - `patientType` string
        - `medicalConditionDescription` string
        - `procedureDescription` string
        - `allegationsDescription` string
        - `allegationNature` string
        - `specificAllegation` string
        - `specificAllegationDate` string, date
        - `outcome` string
        - `source` string
        - `reportType` string
        - `firstName` string
        - `lastName` string
        - `middleName` string
        - `gender` string
        - `npi` string
        - `homeAddress` string
        - `homeCity` string
        - `homeState` string
        - `homeZip` string
        - `dcn` string
        - `databankSubjectId` string, date
        - `enrollmentStatus` string — The enrollment status.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the report.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
      - `nppes` object[]
        - `npi` string
        - `active` boolean, nullable
        - `addresses` object[]
          - `address1` string, required
          - `addressPurpose` string
          - `addressType` string, required
          - `city` string, required
          - `countryCode` string, required
          - `countryName` string, required
          - `faxNumber` string
          - `postalCode` string
          - `state` string, required
          - `telephoneNumber` string
        - `certificationDate` string, date
        - `createdBy` string
        - `createdByName` string
        - `credential` string
        - `enumerationDate` string, date
        - `enumerationType` string
        - `firstName` string
        - `gender` string
        - `id` string
        - `identifiers` object[]
          - `id` string
          - `type` string
          - `state` string
          - `issuer` string
        - `lastName` string
        - `lastUpdatedAt` string, date
        - `middleName` string
        - `organizationId` string
        - `otherNames` unknown[]
          - unknown
        - `prefix` string
        - `providerId` string
        - `status` string
        - `suffix` string
        - `taxonomies` object[]
          - `code` string, required
          - `desc` string, required
          - `license` string
          - `primary` boolean, nullable
          - `state` string
          - `taxonomyGroup` string
      - `certifications` object[]
        - `certificateId` string
        - `certificateType` string
        - `durationType` string
        - `expirationDate` string, date
        - `issueDate` string, date
        - `speciality` string
        - `subspeciality` string
        - `verifiedBy` string
        - `verifiedDate` string, date-time
        - `moc` string
        - `status` string
        - `occurrenceType` string
        - `recordType` string
        - `number` string — The certificate number.
        - `source` string — The source of the certificate.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the certificate.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
      - `supportingDocuments` FacilityAttachment[]
        - `createdAt` string, date-time — The date the attachment was created.
        - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
        - `fileUrl` string — Supporting Document File URI in GCS
        - `originalFileName` string — Supporting Document Original File Name
        - `state` string — The state associated with the supporting document.
        - `expirationDate` string, date — The expiration date of the supporting document.
        - `source` string — The source of the supporting document.
        - `createdBy` string — The user who created the record.
      - `insurances` object[]
        - `carrierName` string
        - `expirationDate` string, date
        - `effectiveDate` string, date
        - `source` string
        - `status` string
        - `policyNumber` string
        - `aggregateCoverageAmount` string
        - `occurrenceCoverageAmount` string
        - `verifiedBy` string
        - `verifiedDate` string, date-time
        - `type` string — The type of insurance.
        - `unlimitedCoverage` boolean, nullable — Whether the policy has unlimited coverage.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the insurance.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
      - `sanctions` object[]
        - `dateOfReport` string, date
        - `sanctionType` string
        - `typeOfAction` string
        - `data` string
        - `flaggedDate` string, date — The date the sanction was flagged.
        - `source` string — The source of the sanction.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the sanction.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the sanction was verified.
        - `verifiedBy` string — The user who verified the sanction.
      - `specialties` object[]
        - `type` string — The type of specialty.
        - `specialty` string — The specialty.
        - `subspecialty` string — The subspecialty.
        - `primarySpecialty` boolean, nullable — Whether this is the primary specialty.
        - `source` string — The source of the specialty.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the specialty.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the specialty was verified.
        - `verifiedBy` string — The user who verified the specialty.
      - `accreditations` object[]
        - `idNumber` string — The accreditation ID number.
        - `accreditationBody` string — The accreditation body.
        - `status` string — The status of the accreditation.
        - `effectiveDate` string, date — The effective date of the accreditation.
        - `expirationDate` string, date — The expiration date of the accreditation.
        - `source` string — The source of the accreditation.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the accreditation.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the accreditation was verified.
        - `verifiedBy` string — The user who verified the accreditation.
      - `siteVisits` object[]
        - `grade` string — The grade of the site visit.
        - `date` string, date — The date of the site visit.
        - `source` string — The source of the site visit.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the site visit.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the site visit was verified.
        - `verifiedBy` string — The user who verified the site visit.
      - `medicareStarRatings` object[]
        - `starRating` string — The star rating.
        - `reportDate` string, date — The date of the report.
        - `source` string — The source of the rating.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the rating.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the rating was verified.
        - `verifiedBy` string — The user who verified the rating.
      - `appVerifications` object[]
        - `verificationType` string — The type of verification.
        - `explanation` string — The explanation for the verification.
        - `source` string — The source of the verification.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the verification.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the verification was verified.
        - `verifiedBy` string — The user who verified the verification.
      - `performanceIndicators` object[]
        - `totalComplaints` integer — Total number of complaints.
        - `clinicalComplaints` integer — Number of clinical complaints.
        - `serviceComplaints` integer — Number of service complaints.
        - `benefitsComplaints` integer — Number of benefits complaints.
        - `claimComplaints` integer — Number of claim complaints.
        - `accessIssueComplaints` integer — Number of access issue complaints.
        - `reportDate` string, date — The date of the report.
        - `createdAt` string, date-time — The date the record was created.
        - `createdBy` string — The user who created the record.
        - `updatedAt` string, date-time — The date the record was last updated.
        - `updatedBy` string — The user who last updated the record.
        - `attachments` FacilityAttachment[] — Supporting documents for the indicator.
          - `createdAt` string, date-time — The date the attachment was created.
          - `fileType` string — Supporting Document File Type (i.e. Malpractice Insurance Policy, License, etc.)
          - `fileUrl` string — Supporting Document File URI in GCS
          - `originalFileName` string — Supporting Document Original File Name
          - `state` string — The state associated with the supporting document.
          - `expirationDate` string, date — The expiration date of the supporting document.
          - `source` string — The source of the supporting document.
          - `createdBy` string — The user who created the record.
        - `verifiedDate` string, date-time — The date the indicator was verified.
        - `verifiedBy` string — The user who verified the indicator.
    - `credentialingCycle` 'INITIAL' | 'RECREDENTIALING' — Cycle of credentialing the facility.
    - `previousCredentialedDate` string, date, nullable — Date of the previous credentialing.
    - `credentialingDueDate` string, date, nullable — Date of the credentialing due.
    - `assignments` object[] — History of assignment changes for this workflow.
      - `reason` string, nullable — Reason for the assignment change.
      - `assignedBy` string, required — User or system that made the change.
      - `assignedFrom` string, nullable — Previous assignee (if any).
      - `assignedTo` string, nullable, required — Assignee after the change.
      - `assignedOn` string, date-time, required — Timestamp when the change occurred.
    - `facilityFileTypeChanges` object[] — Tracks facilityFileType changes, with the most recent value always at index 0.
      - `reason` string — Reason for the facilityFileType change.
      - `fileType` 'CLEAN' | 'NON_CLEAN' | 'PENDING', required — Type of facility file associated with this credentialing workflow.
      - `changedBy` string, required — User or system that made the change.
      - `changedOn` string, date-time, required — Timestamp when the change occurred.
    - `credentialingCycleChangeLog` object[] — Tracks credentialingCycle changes, with the most recent value always at index 0.
      - `reason` string, nullable — Reason for the credentialingCycle change.
      - `credentialingCycle` string, nullable, required — Cycle of credentialing the facility after the change.
      - `createdBy` string, required — User or system that created the change log entry.
      - `createdAt` string, date-time, required — Timestamp when the change log entry was created.
    - `lineOfBusinessChangeLog` object[] — Array to track changes to the facility's line of business. The actual lineOfBusiness data is fetched from facility.lineOfBusiness on the workflow.
      - `changedFrom` string, nullable — Previous line of business value
      - `changedTo` string, nullable, required — New line of business value
      - `changeReason` string, nullable — Reason for the change
      - `createdBy` string, required — User who made the change
      - `createdAt` string, date-time, required — Timestamp when the change was made
  - `certifyFacilityIds` string[] — List of certify facility IDs to create workflows for. Required when isSelectAll is false. Ignored when isSelectAll is true (facility IDs will be fetched using the filter).
  - `filter` string — Filter criteria as JSON string (URL encoded). Used to find facilities when isSelectAll is true. Facility IDs from matching facilities will be used to create new workflows. See GET /facilities endpoint documentation for filter format. Filterable fields include: data.npi, data.name.
  - `isSelectAll` boolean — If true, find all facilities matching the filter criteria and create workflows for those facilities, instead of using certifyFacilityIds. When true, filter parameter is required and certifyFacilityIds will be ignored.

## Response `202`

Bulk workflow creation request accepted and processing started. The operation will complete in the background.

- object

## Other responses

- `400` — Invalid request data
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/3d27e9019c7b/schema)
