Upload Provider Signature
Stores a provider's signature image and returns its signature_key.
Endpoint
POST /v2/providers/{provider_id}/signature
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 Body
| Part |
Type |
Required |
Description |
file |
file |
Yes |
JPEG or PNG, max 2 MB. |
Request
curl --location '{base_url}/v2/providers/2094/signature' \
--header 'Authorization: Bearer JWT_TOKEN' \
--form 'file=@provider-signature.png'
Response
Success Response
Code: 200 OK
{
"signature_key": "doctor-signature/production/7412/onboarding/6f1c2a9e-4b7d-4c1a-9e3f-2d8b5a7c0e14.png"
}
Response Fields
| Field |
Type |
Description |
signature_key |
string |
Key of a signature image stored by Upload Provider Signature for this organisation. Set it on the provider with Update Provider; it reads back through signature_url. |
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
- This only stores the image — the provider is unchanged until you send the
signature_key in Update Provider.
- Only providers created through onboarding (with an
onboarding_provider_id) can be written; any other provider returns 400. Pass ?onboarding=true and an onboarding_provider_id to address a provider that is not yet published.