---
title: "Bulk delete facility workflows asynchronously"
method: POST
path: "/facility-credentialing-workflows/bulk-delete"
tags: ["FacilityCredentialingWorkflow"]
---

# Bulk delete facility workflows asynchronously

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

Asynchronously deletes multiple facility credentialing workflows via a chunked Cloud Tasks fan-out. Returns 202 immediately with a jobId and accepted ID count — not per-ID outcomes. Chunk and per-ID cascade-delete callbacks complete out of band.

## Headers

- `tenant-id` string, required

## Request body

- BulkDeleteCredentialingWorkflowsRequest — Request to delete multiple credentialing workflows by ID
  - `workflowIds` string[], required — Credentialing workflow IDs to delete. Required and non-empty; deduplicated server-side.

## Response `202`

Bulk delete accepted. The body reports the jobId and how many IDs were accepted.

- BulkDeleteCredentialingWorkflowsResponse — Acknowledgement of an asynchronous bulk credentialing-workflow delete request
  - `jobId` string, required — Server-generated correlation ID for this asynchronous bulk-delete job
  - `requestedCount` integer, required — Number of (deduplicated) workflow IDs accepted from the request
  - `acceptedCount` integer, required — Number of IDs handed off for processing (i.e. carried by a successfully enqueued chunk task). IDs in a chunk that failed to enqueue are NOT deleted.
  - `status` 'ACCEPTED' | 'PARTIALLY_ACCEPTED' | 'FAILED', required — Outcome of the synchronous chunk fan-out: ACCEPTED (all chunks enqueued), PARTIALLY_ACCEPTED (some chunks failed to enqueue), or FAILED (none enqueued)
  - `message` string, required — Human-readable summary of the asynchronous request outcome

## Other responses

- `400` — Invalid request - empty workflowIds list, or more IDs than the per-request maximum
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - failed to enqueue any chunk task
- `503` — Bulk delete is disabled by the server kill switch

---

[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/563848e0ecc0/schema)
