Delete Provider¶
Revokes a provider's access.
Endpoint¶
Path Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
provider_id |
string | Yes | The treating provider. |
Query Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
onboarding |
boolean | No | Treat the path id as an onboarding_provider_id rather than an operational id. Required to address a provider that has not been published yet. |
Request¶
curl --location '{base_url}/v2/providers/2094' \
--request DELETE \
--header 'Authorization: Bearer JWT_TOKEN'
Response¶
Success Response¶
Code: 204 No Content
No response body.
Error Response¶
Code: 400 Bad Request
{
"code": "bad_request",
"message": "Validation failed",
"errors": [
{
"field": "patient_id",
"message": "must be a string"
}
]
}
Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.
| Status | code |
Meaning |
|---|---|---|
400 Bad Request |
bad_request |
The request body or parameters failed validation. errors[] names the offending fields. |
401 Unauthorized |
unauthorized |
The access token is missing, malformed or expired. |
403 Forbidden |
forbidden |
The request references a resource outside the token's organisation or clinic scope. |
404 Not Found |
not_found |
No such resource, or it's outside your scope. |
429 Too Many Requests |
rate_limited |
Rate limit exceeded. Back off and retry. |
500 Internal Server Error |
internal_error |
Unexpected server error. |
502 Bad Gateway |
upstream_error |
Upstream service failed or timed out. |
Notes¶
- The EMR user is deactivated at the organisation's next publish; until then a read still reports the live status.
- This sets
access_revoked: truerather than deleting the record — reversible withPATCH{"access_revoked": false}. - Only providers created through onboarding (with an
onboarding_provider_id) can be written; any other provider returns400. Pass?onboarding=trueand anonboarding_provider_idto address a provider that is not yet published. - When onboarding refuses a write, each
errors[]entry carries acodenaming the rule that failed, andfieldnames the field in snake_case, as this API spells it.