{ "opencollection": "1.0.0", "info": { "name": "Certifyos Credentialing Workflow API", "version": "1.0.0" }, "items": [ { "info": { "name": "CredentialingWorkflow", "type": "folder" }, "items": [ { "info": { "name": "Get credentialing workflows", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows", "headers": [ { "name": "X-PII-View", "value": "" }, { "name": "tenant-id", "value": "" } ], "params": [ { "name": "endAtId", "value": "", "type": "query", "description": "End at document ID, for backward cursor-based pagination" }, { "name": "filter", "value": "", "type": "query", "description": "## Filter Criteria\n\nThe filter parameter must be URL encoded when sent. Filters are specified as JSON objects where each field can have\none or more filter operations.\n\n### Filterable Fields\n\n#### Core Workflow Fields\n- **id**: Workflow unique identifier (String)\n- **tenantId**: Tenant identifier (String)\n- **tenantPractitionerId**: Tenant practitioner identifier (String)\n- **createdAt**: Workflow creation timestamp (Timestamp)\n- **updatedAt**: Workflow last update timestamp (Timestamp)\n\n#### Data Fields - Workflow Information\n- **data.externalId**: External identifier (String)\n- **data.practitionerFileType**: Type of practitioner file (String)\n- **data.credentialingCycle**: Credentialing cycle (String)\n- **data.credentialedStates**: Array of credentialed states (Array - eq/in only)\n- **data.assignedTo**: User assigned to the workflow (String)\n- **data.assignedBy**: User who assigned the workflow (String)\n\n#### Data Fields - Status & Dates\n- **data.credentialingStatus**: Current workflow status (String)\n- **data.psvReadyDate**: PSV ready date (Timestamp)\n- **data.psvCompletedDate**: PSV completed date (Timestamp)\n- **data.credentialingStatusLastUpdatedDate**: Status last updated date (Timestamp)\n- **data.previousCredentialedDate**: Previous credentialing date (Date)\n- **data.credentialingDueDate**: Credentialing due date (Date)\n- **data.nextCredentialingDate**: Next credentialing date (Date)\n- **data.credentialingDecisionDate**: Credentialing decision date (Date)\n\n#### Data Fields - Practitioner Information\n- **data.practitioner.firstName**: Practitioner first name (String, case-insensitive contains)\n- **data.practitioner.middleName**: Practitioner middle name (String)\n- **data.practitioner.lastName**: Practitioner last name (String, case-insensitive contains)\n- **data.practitioner.npi**: National Provider Identifier (String)\n- **data.practitioner.caqhProviderId**: CAQH Provider ID (String)\n- **data.practitioner.primaryEmail**: Primary email address (String)\n- **data.practitioner.licensedStates**: Array of licensed states (Array - eq/in only)\n- **data.practitioner.practitionerTypesToCredential**: Array of practitioner types to credential (Array - eq/in only)\n- **data.practitioner.statesToCredential**: Array of states to credential (Array - eq/in only)\n- **data.practitioner.lineOfBusiness**: Array of lines of business (Array - eq/in only)\n- **data.practitioner.userDefinedFields.market**: Array of markets (Array - eq/in only)\n\n### Supported Filter Operations\n\n#### String Fields (eq, neq, in, nin, contains)\n- **eq**: Exact match - `{\"field\":{\"eq\":\"value\"}}`\n- **neq**: Not equal - `{\"field\":{\"neq\":\"value\"}}`\n- **in**: Match any value in array - `{\"field\":{\"in\":[\"value1\",\"value2\"]}}`\n- **nin**: Not match any value in array - `{\"field\":{\"nin\":[\"value1\",\"value2\"]}}`\n- **contains**: Substring match - `{\"field\":{\"contains\":\"partial\"}}` (case-insensitive for name fields)\n\n#### Timestamp/Date Fields (eq, neq, gt, gte, lt, lte)\n- **eq**: Exact match - `{\"field\":{\"eq\":\"2023-01-01T00:00:00Z\"}}`\n- **neq**: Not equal - `{\"field\":{\"neq\":\"2023-01-01T00:00:00Z\"}}`\n- **gt**: Greater than - `{\"field\":{\"gt\":\"2023-01-01T00:00:00Z\"}}`\n- **gte**: Greater than or equal - `{\"field\":{\"gte\":\"2023-01-01T00:00:00Z\"}}`\n- **lt**: Less than - `{\"field\":{\"lt\":\"2023-01-01T00:00:00Z\"}}`\n- **lte**: Less than or equal - `{\"field\":{\"lte\":\"2023-01-01T00:00:00Z\"}}`\n\n#### Array Fields (eq, in only)\n- **eq**: Array contains value - `{\"field\":{\"eq\":\"value\"}}`\n- **in**: Array contains any of these values - `{\"field\":{\"in\":[\"value1\",\"value2\"]}}`\n\n### Filter Examples\n\n#### Basic Filters (before URL encoding)\n```json\n// Filter by id\n{\"id\":{\"eq\":\"123\"}}\n\n// Filter by tenant\n{\"tenantId\":{\"eq\":\"tenant123\"}}\n\n// Filter by practitioner ID\n{\"tenantPractitionerId\":{\"eq\":\"practitioner456\"}}\n\n// Filter by credentialing status\n{\"data.credentialingStatus\":{\"eq\":\"PSV_READY\"}}\n\n// Filter by assigned user\n{\"data.assignedTo\":{\"eq\":\"user123\"}}\n```\n\n#### Practitioner Filters\n```json\n// Search by practitioner first name (case-insensitive)\n{\"data.practitioner.firstName\":{\"contains\":\"Alice\"}}\n\n// Filter by NPI (exact match)\n{\"data.practitioner.npi\":{\"eq\":\"1234567890\"}}\n\n// Filter by CAQH Provider ID\n{\"data.practitioner.caqhProviderId\":{\"eq\":\"12345678\"}}\n\n// Filter by email\n{\"data.practitioner.primaryEmail\":{\"contains\":\"@example.com\"}}\n```\n\n#### Array Field Filters\n```json\n// Filter by practitioner type to credential\n{\"data.practitioner.practitionerTypesToCredential\":{\"eq\":\"MD\"}}\n\n// Filter by multiple states to credential\n{\"data.practitioner.statesToCredential\":{\"in\":[\"CA\",\"NY\",\"TX\"]}}\n\n// Filter by licensed states\n{\"data.practitioner.licensedStates\":{\"in\":[\"CA\",\"NY\"]}}\n\n// Filter by line of business\n{\"data.practitioner.lineOfBusiness\":{\"eq\":\"MEDICARE\"}}\n\n// Filter by multiple lines of business\n{\"data.practitioner.lineOfBusiness\":{\"in\":[\"MEDICARE\",\"MEDICAID\"]}}\n\n// Filter by market\n{\"data.practitioner.userDefinedFields.market\":{\"eq\":\"MARKET1\"}}\n\n// Filter by multiple markets\n{\"data.practitioner.userDefinedFields.market\":{\"in\":[\"MARKET1\",\"MARKET2\"]}}\n\n// Filter by credentialed states\n{\"data.credentialedStates\":{\"eq\":\"CA\"}}\n```\n\n#### Date/Timestamp Filters\n```json\n// Workflows created after a date\n{\"createdAt\":{\"gt\":\"2023-01-01T00:00:00Z\"}}\n\n// PSV ready within a date range\n{\"data.psvReadyDate\":{\"gte\":\"2023-01-01T00:00:00Z\",\"lte\":\"2023-12-31T23:59:59Z\"}}\n\n// Workflows updated in last 7 days\n{\"updatedAt\":{\"gte\":\"2023-01-15T00:00:00Z\"}}\n```\n\n#### Combined Filters\n```json\n// Multiple conditions (AND logic)\n{\n \"data.practitioner.firstName\":{\"contains\":\"Alice\"},\n \"data.practitioner.npi\":{\"eq\":\"1234567890\"},\n \"data.credentialingStatus\":{\"eq\":\"PSV_READY\"}\n}\n\n// Filter by status and date range\n{\n \"data.credentialingStatus\":{\"eq\":\"CRED_APPROVED\"},\n \"data.credentialingDecisionDate\":{\"gte\":\"2023-01-01\",\"lte\":\"2023-12-31\"}\n}\n\n// Filter by line of business and status\n{\n \"data.practitioner.lineOfBusiness\":{\"in\":[\"MEDICARE\"]},\n \"data.credentialingStatus\":{\"eq\":\"PSV_READY\"}\n}\n\n// Filter by market and status\n{\n \"data.practitioner.userDefinedFields.market\":{\"in\":[\"MARKET1\"]},\n \"data.credentialingStatus\":{\"eq\":\"PSV_READY\"}\n}\n```\n\n### cURL Examples\n```bash\n# Filter by id\ncurl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22id%22%3A%7B%22eq%22%3A%22123%22%7D%7D'\n\n# Filter by practitioner firstName (case-insensitive)\ncurl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.firstName%22%3A%7B%22contains%22%3A%22Alice%22%7D%7D'\n\n# Filter by NPI\ncurl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.npi%22%3A%7B%22eq%22%3A%221234567890%22%7D%7D'\n\n# Filter by states to credential\ncurl -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'\n\n# Filter by line of business\ncurl -X GET 'http://localhost:8080/credentialing-workflows?filter=%7B%22data.practitioner.lineOfBusiness%22%3A%7B%22in%22%3A%5B%22MEDICARE%22%5D%7D%7D'\n\n# Filter by market\ncurl -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'\n\n# Combined filter\ncurl -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'\n```\n\n**Note**: Always URL encode the JSON filter string before sending the request.\n" }, { "name": "order", "value": "", "type": "query", "description": "## Sorting/Ordering\n\nSort results by specifying a field name and direction. The order parameter must be URL encoded when sent.\n\n### Sortable Fields\nYou can sort by any of the following fields:\n- **id**: Workflow unique identifier\n- **tenantPractitionerId**: Tenant practitioner identifier\n- **createdAt**: Workflow creation timestamp\n- **createdBy**: User who created the workflow (sortable only, not filterable)\n- **updatedAt**: Last update timestamp\n- **updatedBy**: User who last updated the workflow (sortable only, not filterable)\n- **data**: JSON data field (lexicographic ordering)\n\n### Sort Direction\n- **ASC**: Ascending order (default)\n- **DESC**: Descending order\n\n**Note**: Sort direction is case-insensitive, but uppercase is recommended (ASC/DESC).\n\n### Sort Format\n```json\n{\n \"orderBy\": \"fieldName\",\n \"orderByDirection\": \"ASC|DESC\"\n}\n```\n\n### Sort Examples\n\n#### Basic Sorting (before URL encoding)\n```json\n// Sort by creation date (newest first)\n{\"orderBy\":\"createdAt\",\"orderByDirection\":\"DESC\"}\n\n// Sort by id (ascending)\n{\"orderBy\":\"id\",\"orderByDirection\":\"ASC\"}\n\n// Sort by last update (newest first)\n{\"orderBy\":\"updatedAt\",\"orderByDirection\":\"DESC\"}\n```\n\n### cURL Examples\n```bash\n# Sort by creation date (newest first)\ncurl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22createdAt%22%2C%22orderByDirection%22%3A%22DESC%22%7D'\n\n# Sort by id (ascending)\ncurl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22id%22%2C%22orderByDirection%22%3A%22ASC%22%7D'\n\n# Sort by tenant practitioner (ascending)\ncurl -X GET 'http://localhost:8080/credentialing-workflows?order=%7B%22orderBy%22%3A%22tenantPractitionerId%22%2C%22orderByDirection%22%3A%22ASC%22%7D'\n\n# Combine filter and sort\ncurl -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'\n```\n\n**Note**: Always URL encode the JSON order string before sending the request.\n" }, { "name": "page", "value": "", "type": "query", "description": "Page number (0-based), for offset-based pagination" }, { "name": "size", "value": "", "type": "query", "description": "Page size" }, { "name": "skipEnrichment", "value": "", "type": "query", "description": "When true, skips DAL enrichment and verifiedBy user lookups" }, { "name": "startAfterId", "value": "", "type": "query", "description": "Start after document ID, for forward cursor-based pagination" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves a list of credentialing workflows based on filter criteria" }, { "info": { "name": "Create a new credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates a new credentialing workflow" }, { "info": { "name": "Create assignments for multiple credentialing workflows", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/assignments", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates assignments for multiple credentialing workflows in a single operation. Workflows are evenly distributed across the provided user IDs using round-robin distribution. Each workflow is processed independently, and results include both successful and failed assignments." }, { "info": { "name": "Create credentialing workflows for multiple practitioners (async)", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/bulk-create", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Asynchronously creates credentialing workflows for multiple practitioners. The request is accepted and processing begins immediately in the background. Each workflow is processed independently with automatic practitioner data hydration. Results are logged but not returned in the response." }, { "info": { "name": "Cloud Task callback for creating a single credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/cloud-create", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Called by Cloud Tasks as part of the v2 bulk-create flow. Creates a single credentialing workflow and updates the bulk request item status. Required body fields: certifyPractitionerId (string), tenantPractitionerId (string), credentialingWorkflowBulkRequestId (string), credentialingWorkflowBulkRequestItemId (string). Optional body field: data (object) - workflow creation payload." }, { "info": { "name": "Data pipeline callback", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/data-pipeline-callback", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Receives callback from DI team after MDM Orchestration completes. Marks workflow data-pipeline status and syncs practitioner OV sections." }, { "info": { "name": "DAL DMF (Deceased) check", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/dmf-check", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Calls the DAL DMF (Deceased) check endpoint with SSN and date of birth. Use to verify DAL DMF is working." }, { "info": { "name": "Replay missed webhooks for credentialing workflows", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/replay-webhooks", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Accepts a list of workflow IDs and asynchronously replays credential_workflow.status.changed webhooks for each. Returns 202 Accepted immediately; progress is logged with the [webhook-replay] prefix. Each workflow is fetched and routed through the same webhook code path used during normal status changes." }, { "info": { "name": "Change status of multiple credentialing workflows", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/timeline-events", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates timeline events for multiple credentialing workflows in a single operation. This allows changing the status of multiple workflows at once. Each workflow is processed independently, and the response includes both successful and failed operations." }, { "info": { "name": "Create credentialing workflows for multiple practitioners via Cloud Tasks (v2)", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/v2/bulk-create", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Accepts a bulk workflow creation request, creates a tracking entry in the database, and enqueues individual workflow creation tasks via Cloud Tasks for reliable processing. Each practitioner workflow is created independently through the cloud-create callback. Returns immediately with 202 Accepted." }, { "info": { "name": "Get credentialing workflow by ID", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:id", "headers": [ { "name": "X-PII-View", "value": "" }, { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow to retrieve" }, { "name": "skipEnrichment", "value": "", "type": "query", "description": "When true, skips DAL enrichment and verifiedBy user lookups" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves a single credentialing workflow by its ID" }, { "info": { "name": "Update a credentialing workflow", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:id", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow to update" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates an existing credentialing workflow" }, { "info": { "name": "Delete a credentialing workflow", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:9000/credentialing-workflows/:id", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow to delete" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Deletes a credentialing workflow by ID" }, { "info": { "name": "Create assignment for credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:id/assignments", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates a new assignment for the specified credentialing workflow" }, { "info": { "name": "Generate Board Certification PDF", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:id/generate-board-cert-pdf", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generates a Board Certification PDF document for the credentialing workflow" }, { "info": { "name": "Generate NPDB Report PDF", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:id/generate-npdb-pdf", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" }, { "name": "dataPipelineRequestId", "value": "", "type": "query", "description": "Optional pipeline request ID for step tracking" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generates a PDF document for NPDB reports from the credentialing workflow" }, { "info": { "name": "Generate PSV for credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:id/generate-psv", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" }, { "name": "triggeringEventId", "value": "", "type": "query", "description": "Optional timeline event ID that triggered this PSV generation via Cloud Task" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generates a Provider Summary Verification (PSV) document for the specified workflow" }, { "info": { "name": "Generate Sanction PDFs", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:id/generate-sanction-pdf", "headers": [ { "name": "tenant-id", "value": "" }, { "name": "user-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generates Sanction PDF documents for all available sanction types in the credentialing workflow" }, { "info": { "name": "Get latest PSV PDF for credentialing workflow", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:id/latest-psv-pdf", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves the latest PSV PDF path from timeline events for the specified credentialing workflow" }, { "info": { "name": "Update addresses of a practitioner in a credentialing workflow", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:workflowId/addresses", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Replaces the entire addresses array with the provided list (RESTful PUT semantics)." }, { "info": { "name": "Upload attachment to credentialing workflow row", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/attachments", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path" } ], "body": { "type": "multipart-form", "data": [ { "name": "id", "type": "text", "value": "" }, { "name": "file", "type": "text", "value": "" }, { "name": "expirationDate", "type": "text", "value": "" } ] }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Upload attachment to credentialing workflow row" }, { "info": { "name": "Delete attachment from credentialing workflow row", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:9000/credentialing-workflows/:workflowId/attachments", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Delete attachment from credentialing workflow row" }, { "info": { "name": "Update credentialing cycle", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/credentialing-cycle", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the credentialing cycle for a credentialing workflow. Valid values include INITIAL and RECREDENTIALING." }, { "info": { "name": "Update emails in a credentialing workflow", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:workflowId/emails", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the emails for a credentialing workflow. This is a complete replacement operation. Send an empty array to clear all emails." }, { "info": { "name": "Update line of business", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/line-of-business", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the line of business for a credentialing workflow. Accepts an array of line of business values (e.g., [\"MEDICAID\", \"COMMERCIAL\"]). An empty array [] will unset/remove the line of business field. Valid values include MEDICAID, MEDICARE, COMMERCIAL, etc." }, { "info": { "name": "Create an override timeline event for a credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/override-timeline-events", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates an override timeline event for the specified credentialing workflow" }, { "info": { "name": "Update phone numbers in a credentialing workflow", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:workflowId/phone-numbers", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the phone numbers for a credentialing workflow. This is a complete replacement operation. Send an empty array to clear all phone numbers." }, { "info": { "name": "Get pipeline runs for a credentialing workflow", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:workflowId/pipeline-runs", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" }, { "name": "endAtId", "value": "", "type": "query", "description": "End at document ID, for backward cursor-based pagination" }, { "name": "filter", "value": "", "type": "query", "description": "Filter criteria. Example: {\"createdAt\":{\"gte\":\"2023-01-01T00:00:00Z\"}}" }, { "name": "includeSteps", "value": "", "type": "query", "description": "Whether to include pipeline steps in the response" }, { "name": "order", "value": "", "type": "query", "description": "Sort order. Example: {\"createdAt\":\"desc\"}" }, { "name": "page", "value": "", "type": "query", "description": "Page number (0-based), for offset-based pagination" }, { "name": "size", "value": "", "type": "query", "description": "Page size" }, { "name": "startAfterId", "value": "", "type": "query", "description": "Start after document ID, for forward cursor-based pagination" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves pipeline runs for the specified credentialing workflow with optional filtering, pagination, and ordering." }, { "info": { "name": "Trigger pipeline execution for credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/pipeline-runs", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Triggers pipeline execution for the specified credentialing workflow" }, { "info": { "name": "Check NPDB required fields for a credentialing workflow", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:workflowId/pipeline-runs/npdb-required-fields-check", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Validates that all tenant-configured required fields are present and non-empty on the practitioner OV data. Returns which fields pass and which are missing without triggering the pipeline." }, { "info": { "name": "Get a specific pipeline run for a credentialing workflow", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:workflowId/pipeline-runs/:id", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "ID of the pipeline run" }, { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" }, { "name": "includeSteps", "value": "", "type": "query", "description": "Whether to include pipeline steps in the response" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves a specific pipeline run by ID for the specified credentialing workflow" }, { "info": { "name": "Update practitioner file type", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/practitioner-file-type", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the practitioner file type for a credentialing workflow. Valid values are CLEAN, NON_CLEAN, and PENDING." }, { "info": { "name": "Verify a record in a credentialing workflow section", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/records/:recordId/verify", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "recordId", "value": "dea-0", "type": "path", "description": "Record identifier in format '{section}-{index}' (e.g., 'dea-0', 'licenses-1', 'boardCertifications-2')" }, { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Marks a specific record as verified by setting verifiedBy (current user) and verifiedDate (current timestamp). The recordId format is '{section}-{index}' (e.g., 'dea-0', 'licenses-1'). This is an atomic operation that only modifies verification fields without affecting other data." }, { "info": { "name": "Update states to credential", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/states-to-credential", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates the states to credential for a credentialing workflow. Accepts an array of state codes (e.g., [\"CA\", \"NY\", \"TX\"]). An empty array [] will unset/remove the states to credential field." }, { "info": { "name": "Create a new supporting document for a credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/supporting-documents", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "multipart-form", "data": [ { "name": "file", "type": "text", "value": "" }, { "name": "fileType", "type": "text", "value": "" }, { "name": "state", "type": "text", "value": "" }, { "name": "expirationDate", "type": "text", "value": "" } ] }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Upload a new supporting document file for the specified credentialing workflow" }, { "info": { "name": "Update supporting documents for a credentialing workflow using replace-all pattern", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:workflowId/supporting-documents", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Update supporting documents for the specified credentialing workflow using replace-all pattern. Replaces the entire supporting documents array with the provided list (RESTful PUT semantics)." }, { "info": { "name": "Get timeline events for a credentialing workflow", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:workflowId/timeline-events", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" }, { "name": "endAtId", "value": "", "type": "query", "description": "End at document ID, for backward cursor-based pagination" }, { "name": "filter", "value": "", "type": "query", "description": "## Filter Criteria\n\nThe filter parameter must be URL encoded when sent. Filters are specified as JSON objects where each field can have\none or more filter operations.\n\n### Filterable Fields\n\n#### Core Timeline Event Fields\n- **id**: Timeline event unique identifier (String)\n- **createdBy**: User who created the timeline event (String)\n- **createdAt**: Timeline event creation timestamp (Timestamp)\n- **updatedAt**: Timeline event last update timestamp (Timestamp)\n\n### Supported Filter Operations\n\n#### String Fields (eq, neq, in, nin, contains)\n- **eq**: Exact match - `{\"field\":{\"eq\":\"value\"}}`\n- **neq**: Not equal - `{\"field\":{\"neq\":\"value\"}}`\n- **in**: Match any value in array - `{\"field\":{\"in\":[\"value1\",\"value2\"]}}`\n- **nin**: Not match any value in array - `{\"field\":{\"nin\":[\"value1\",\"value2\"]}}`\n- **contains**: Substring match - `{\"field\":{\"contains\":\"partial\"}}` (case-sensitive)\n\n#### Timestamp Fields (eq, neq, gt, gte, lt, lte)\n- **eq**: Exact match - `{\"field\":{\"eq\":\"2023-01-01T00:00:00Z\"}}`\n- **neq**: Not equal - `{\"field\":{\"neq\":\"2023-01-01T00:00:00Z\"}}`\n- **gt**: Greater than - `{\"field\":{\"gt\":\"2023-01-01T00:00:00Z\"}}`\n- **gte**: Greater than or equal - `{\"field\":{\"gte\":\"2023-01-01T00:00:00Z\"}}`\n- **lt**: Less than - `{\"field\":{\"lt\":\"2023-01-01T00:00:00Z\"}}`\n- **lte**: Less than or equal - `{\"field\":{\"lte\":\"2023-01-01T00:00:00Z\"}}`\n\n### Filter Examples\n\n#### Basic Filters (before URL encoding)\n```json\n// Filter by id\n{\"id\":{\"eq\":\"123\"}}\n\n// Filter by creator\n{\"createdBy\":{\"eq\":\"user@example.com\"}}\n```\n\n#### Timestamp Filters\n```json\n// Timeline events created after a specific date\n{\"createdAt\":{\"gt\":\"2023-01-01T00:00:00Z\"}}\n\n// Timeline events created within a date range\n{\"createdAt\":{\"gte\":\"2023-01-01T00:00:00Z\",\"lte\":\"2023-12-31T23:59:59Z\"}}\n\n// Timeline events updated in last 7 days\n{\"updatedAt\":{\"gte\":\"2023-01-15T00:00:00Z\"}}\n```\n\n#### Advanced Filters\n```json\n// Exclude specific creators\n{\"createdBy\":{\"nin\":[\"user1@example.com\",\"user2@example.com\"]}}\n\n// Search by creator email contains\n{\"createdBy\":{\"contains\":\"@example.com\"}}\n```\n\n#### Combined Filters\n```json\n// Filter by creator and date\n{\n \"createdBy\":{\"eq\":\"user@example.com\"},\n \"createdAt\":{\"gte\":\"2023-01-01T00:00:00Z\"}\n}\n\n// Filter by creator and date range\n{\n \"createdBy\":{\"contains\":\"@example.com\"},\n \"createdAt\":{\"gte\":\"2023-01-01T00:00:00Z\",\"lte\":\"2023-12-31T23:59:59Z\"}\n}\n```\n\n### cURL Examples\n```bash\n# Filter by id\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?filter=%7B%22id%22%3A%7B%22eq%22%3A%22123%22%7D%7D'\n\n# Filter by creator\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?filter=%7B%22createdBy%22%3A%7B%22eq%22%3A%22user%40example.com%22%7D%7D'\n\n# Filter by creation date range\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?filter=%7B%22createdAt%22%3A%7B%22gte%22%3A%222023-01-01T00%3A00%3A00Z%22%2C%22lte%22%3A%222023-12-31T23%3A59%3A59Z%22%7D%7D'\n\n# Combined filter: creator and date\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?filter=%7B%22createdBy%22%3A%7B%22contains%22%3A%22%40example.com%22%7D%2C%22createdAt%22%3A%7B%22gte%22%3A%222023-01-01T00%3A00%3A00Z%22%7D%7D'\n```\n\n**Note**: Always URL encode the JSON filter string before sending the request.\n" }, { "name": "order", "value": "", "type": "query", "description": "## Sorting/Ordering\n\nSort results by specifying a field name and direction. The order parameter must be URL encoded when sent.\n\n### Sortable Fields\nYou can sort by any of the following fields:\n- **id**: Timeline event unique identifier\n- **createdBy**: User who created the timeline event (sortable and filterable)\n- **createdAt**: Timeline event creation timestamp\n- **updatedAt**: Timeline event last update timestamp\n- **updatedBy**: User who last updated the timeline event (sortable only, not filterable)\n- **data**: JSON data field (lexicographic ordering)\n\n### Sort Direction\n- **ASC**: Ascending order (default)\n- **DESC**: Descending order\n\n**Note**: Sort direction is case-insensitive, but uppercase is recommended (ASC/DESC).\n\n### Sort Format\n```json\n{\n \"orderBy\": \"fieldName\",\n \"orderByDirection\": \"ASC|DESC\"\n}\n```\n\n### Sort Examples\n\n#### Basic Sorting (before URL encoding)\n```json\n// Sort by creation date (oldest first)\n{\"orderBy\":\"createdAt\",\"orderByDirection\":\"ASC\"}\n\n// Sort by creation date (newest first)\n{\"orderBy\":\"createdAt\",\"orderByDirection\":\"DESC\"}\n\n// Sort by id (ascending)\n{\"orderBy\":\"id\",\"orderByDirection\":\"ASC\"}\n\n// Sort by creator (ascending)\n{\"orderBy\":\"createdBy\",\"orderByDirection\":\"ASC\"}\n\n// Sort by last update (newest first)\n{\"orderBy\":\"updatedAt\",\"orderByDirection\":\"DESC\"}\n```\n\n### cURL Examples\n```bash\n# Sort by creation date (newest first)\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?order=%7B%22orderBy%22%3A%22createdAt%22%2C%22orderByDirection%22%3A%22DESC%22%7D'\n\n# Sort by id (descending)\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?order=%7B%22orderBy%22%3A%22id%22%2C%22orderByDirection%22%3A%22DESC%22%7D'\n\n# Sort by creator (ascending)\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?order=%7B%22orderBy%22%3A%22createdBy%22%2C%22orderByDirection%22%3A%22ASC%22%7D'\n\n# Combine filter and sort: Get timeline events filtered by creator, sorted by date\ncurl -X GET 'http://localhost:8080/credentialing-workflows/{workflowId}/timeline-events?filter=%7B%22createdBy%22%3A%7B%22contains%22%3A%22%40example.com%22%7D%7D&order=%7B%22orderBy%22%3A%22createdAt%22%2C%22orderByDirection%22%3A%22DESC%22%7D'\n```\n\n**Note**: Always URL encode the JSON order string before sending the request.\n" }, { "name": "page", "value": "", "type": "query", "description": "Page number (0-based), for offset-based pagination" }, { "name": "size", "value": "", "type": "query", "description": "Page size" }, { "name": "startAfterId", "value": "", "type": "query", "description": "Start after document ID, for forward cursor-based pagination" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves timeline events for the specified credentialing workflow with optional filtering, pagination, and ordering." }, { "info": { "name": "Create a timeline event for a credentialing workflow", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/timeline-events", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates a new timeline event for the specified credentialing workflow" }, { "info": { "name": "Delete the latest timeline event for a credentialing workflow", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:9000/credentialing-workflows/:workflowId/timeline-events/latest", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Deletes the most recent timeline event (by creation date) for the specified credentialing workflow. Returns the deleted timeline event data. Only works on the latest workflow version for a practitioner. Cannot delete CRED_APPROVED or CRED_DENIED events as they have side effects that cannot be reversed. Note: There is a small race window between fetching and deleting; if another event is created concurrently, the previously-latest event will be deleted instead." }, { "info": { "name": "Get timeline event status options", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/credentialing-workflows/:workflowId/timeline-events/status-options", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Retrieves available status options and required parameters for timeline events" }, { "info": { "name": "Update a timeline event and workflow in batch", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/timeline-events/:eventId", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "eventId", "value": "", "type": "path", "description": "ID of the timeline event to update" }, { "name": "workflowId", "value": "", "type": "path", "description": "ID of the credentialing workflow" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Updates specific fields of an existing timeline event and its associated workflow in a single atomic transaction. Supports partial updates of nextCredentialingDate, nextCredentialingDateSource, changeReason, and nextCredentialingDateChangeLog fields. Only works with CRED_APPROVED timeline events. Both timeline and workflow are updated in a single transaction batch for data consistency." }, { "info": { "name": "Update user defined fields of a practitioner in a credentialing workflow", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/credentialing-workflows/:workflowId/userdefinedfields", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Replaces the entire userDefinedFields object with the provided object (RESTful PUT semantics)." }, { "info": { "name": "Create a new record in any credentialing workflow section", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/credentialing-workflows/:workflowId/:sectionName", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "sectionName", "value": "appVerifications", "type": "path", "description": "Section name. Available sections: appVerifications, boardCertifications, cds, dea, educationTraining, hospitalAffiliations, licenses, licensureActions, malpracticeInsurance, npdbReports, performanceIndicators, practiceLocations, professionalIds, sanctions, siteVisits, specialties, supportingDocuments" }, { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generic endpoint to create records in sections: appVerifications, boardCertifications, cds, dea, educationTraining, hospitalAffiliations, licenses, licensureActions, malpracticeInsurance, npdbReports, performanceIndicators, practiceLocations, professionalIds, sanctions, siteVisits, specialties, supportingDocuments" }, { "info": { "name": "Update a single record in any credentialing workflow section", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:9000/credentialing-workflows/:workflowId/:sectionName/:recordId", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "recordId", "value": "appVerifications-0", "type": "path", "description": "Record identifier format: '{section}-{index}' (e.g., 'appVerifications-0')" }, { "name": "sectionName", "value": "appVerifications", "type": "path", "description": "Section name. Available sections: appVerifications, boardCertifications, cds, dea, educationTraining, hospitalAffiliations, licenses, licensureActions, malpracticeInsurance, npdbReports, performanceIndicators, practiceLocations, professionalIds, sanctions, siteVisits, specialties, supportingDocuments" }, { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generic endpoint to update records by recordId format: '{section}-{index}'. Works for all CRUD-enabled sections." }, { "info": { "name": "Delete a record from any credentialing workflow section", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:9000/credentialing-workflows/:workflowId/:sectionName/:recordId", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "recordId", "value": "appVerifications-0", "type": "path", "description": "Record identifier format: '{section}-{index}' (e.g., 'appVerifications-0')" }, { "name": "sectionName", "value": "appVerifications", "type": "path", "description": "Section name. Available sections: appVerifications, boardCertifications, cds, dea, educationTraining, hospitalAffiliations, licenses, licensureActions, malpracticeInsurance, npdbReports, performanceIndicators, practiceLocations, professionalIds, sanctions, siteVisits, specialties, supportingDocuments" }, { "name": "workflowId", "value": "cw_1234567890", "type": "path", "description": "Credentialing workflow ID" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Generic endpoint to delete records by recordId format: '{section}-{index}'. Works for all CRUD-enabled sections." } ] } ], "bundled": true }